en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

5.14.2012

利用物件的 Tag 來取得 Instance


在之前的很多示範裡都有提及過,你可以使用物件的 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,但是這樣將會無法使用該物件本身的方法函式,切記。






沒有留言:

張貼留言