在之前的很多示範裡都有提及過,你可以使用物件的 Tag 來辨別彼此,或是取得該物件的 Instance,下面示範就是提供兩個利用物件的 Tag 來取得它自己的 Instance。
在開始之前你可以在 Storyboard 中放置數個物件,如上圖,我們放置了兩個 UILabel 與兩個 UIImageView,並且設定這些物件的 Tag 數值,如果你想要分辨出每個物件的單獨個體,那麼物件的 Tag 就必須是唯一的,不能與其它物件相同。
接著,你可以使用下列兩中方法,利用物件的 Tag 來取得該物件的 Instance。
for (UIImageView *view in [super.view subviews]) {
if (view.tag == 10) {
[view setBackgroundColor:[UIColor orangeColor]];
[view setAlpha:0.3];
}
if (view.tag == 20) {
[view setBackgroundColor:[UIColor brownColor]];
[view setAlpha:0.3];
}
}
UILabel *label;
label = (UILabel*) [self.view viewWithTag:100];
[label setText:@"左邊 - 橘色"];
label = (UILabel*) [self.view viewWithTag:200];
[label setText:@"右邊 - 棕色"];
在上述程式碼中,取得物件的 Instance 之後,就可以對物件進行相關的設定。
ps:如果要使用此方式來取得物件的 Instance,你必須要很清楚所取得物件的 Instance 型態,雖然說可以使用泛用型態 id 來宣告此 Instance,但是這樣將會無法使用該物件本身的方法函式,切記。
沒有留言:
張貼留言