objective-c - 關於遍歷 View 上所有的 UIButton 的問題,求問
某草草
某草草 2017-04-28 09:04:24
0
4
636

關於遍歷 View 上所有的 UIButton 的問題,求問

for (id obj in self.view.subviews) {
if ([obj isKindOfClass:[UIButton Class]]) {
UIButton theButton = (UIButton)obj;
UIButton
theButton = (UIButton
)objx

the}Button

;

為什麼在控制項上遍歷子控制項時我們要在 for in 中取 id 屬性再做 if ([obj isKindOfClass:[UIButton Class]])判斷而不能直解取 uibutton ,像下面這樣:


for (id obj in self.view.subviews) { UIButton theButton = (UIButton
)obj;

theButton.xxx = ooo;

}🎜
某草草
某草草

全部回覆(4)
小葫芦

你這也不是直接取UIButton啊,還是我理解有誤,你這是明確的轉換類型了。

曾经蜡笔没有小新

subview裡面不一定只有UIButton,也可以有其他控件,你這樣是將所有控件強制轉換為UIButton,這是很危險的,一不小心就會崩潰。
安全的做法是先判斷取到的控制項是不是UIButton,再強制轉換,此時的控制項其實是已經知道了的,強制轉換只是為了使用UIButton的方法和屬性而不會報錯而已。
另外id不是屬性吧親,它是oc一種特殊類型,你可以看做是object。任何物件都能用它做類型。

Ty80

就是因為你的self.view不一定只有button。你用uibutton強轉如果裡面是個label怎麼辦。會報錯吧。

滿天的星座

除非你確定view的所有subview都是button類型,不然你把驢頭按到人身上一定會出錯的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板