2014-07-14 92 views
0

您好我想分配for循環中的自定義按鈕中的特定子視圖它在目標c中正常工作,但我在swift代碼中遇到問題。swift-將值分配給子視圖中的自定義按鈕

目標的C代碼:

HButton *view = nil; // hbutton class object 
    NSArray *subviews = [self.superview subviews]; // storing the subviews in subviews array 
    NSInteger i = 0; // for index 
    for (view in subviews) 
    { 
      if ([view isKindOfClass:[HButton class]]) 
      { 
       HButton *check=[subviews objectAtIndex:i]; 
      if (self.tag == check.tag) 
      { 
        self.titleLabel.text [email protected]"hel"; 
        self.backgroundColor =[UIColor orangeColor]; 
      } 
     i++; 
    } 

Swift代碼:

var view1 :BTNCustom! = nil 
    var subviews : NSArray = self.superview.subviews 

    var ival : Int = 0; 
    for view1 : AnyObject in subviews // I'm getting the error in this line 
    { 
    if view1.isKindOfClass(BTNCustom) 
    { 
    var check : BTNCustom = subviews.objectAtIndex(ival) as BTNCustom 
    if (self.tag == check.tag) 
{ 
self.titleLabel.text = "hel"; 
self.backgroundColor = UIColor.orangeColor() 
} 
ival++; 
} 
} 
+0

「我收到錯誤」請註明您收到的錯誤 – newacct

+0

您收到什麼錯誤? –

回答

0

你能更清楚你實際上是想幹什麼?以下是我能想象到你正在嘗試做的最接近的事:

for view in superview.subviews { 
    if view.isKindOfClass(BTNCustom) && tag == view.tag { 
    titleLabel.text = "hel" 
    backgroundColor = UIColor.orangeColor() 
    } 
} 

然而,它真的看起來像你在濫用標籤,並沒有真正理解一個類型系統的點。

具體問題與您的代碼:

1)var view1 :BTNCustom! = nil你是,你是說你想成爲自動解包,爲什麼不直接var view1: BTNCustom!,他們應該是相同的,但後面的這些東西分配零得多可口。

2)當您已經聲明它爲BTNCustom時,您試圖使用view1作爲您的不同類型的循環變量。爲什麼?你真的使用這樣的變量名嗎?你有限制你允許使用的字符數量嗎?

3)使用一個額外的整數將視圖拉出子視圖數組的時候,實際上該視圖恰好是您已經參考的視圖,這是什麼意思?清楚的是,在您的Obj-C代碼中,無論您何時使用checkviewcheck都將始終保持一致。

0

只是試圖解決你的錯誤,這可能會幫助你!

for index in 1...subviews 
{ 
    let view1:AnyObject = subViews[index] as AnyObject 
    if view1.isKindOfClass(BTNCustom) 
    { 
      var check : BTNCustom = subviews.objectAtIndex(ival) as BTNCustom 
      if (self.tag == check.tag) 
      { 
       self.titleLabel.text = "hel"; 
       self.backgroundColor = UIColor.orangeColor() 
      } 
      ival++; 
    } 
} 
相關問題