2013-01-24 73 views
1

我有一個UIButton在與爲什麼UIRoundedRectButton對isKindOfClass沒有迴應:[UIButton class]?

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
btn.frame = CGRectMake(500, 100, 100, 44); 
[self.view addsubview:btn]; 

創建的視圖當我遍歷視圖層次結構是這樣的:

for (id view in self.view.subviews) 
{   
    NSLog(@"%@",NSStringFromClass([view class])); 
    if ([view isKindOfClass:[UIButton class]]) 
    { 
     //dsnt get here 
     UIButton *btn = view; 
    } 
} 

控制永遠不會進入如果塊。

NSLog(@"%@", NSStringFromClass([view class]));打印「UIRoundedRectButton」。我如何檢查課程是否爲UIButton

UIButton *btn = [[UIButton alloc] init];給出所需的結果,但我不能稍後設置按鈕類型。

+1

你有沒有添加的按鈕你有何看法? [self.view addSubView:btn]; ? – Mikael

+0

這似乎是一件很奇怪的事情要做。你想用這個代碼做什麼? – Fogmeister

+0

嘗試'[view isMemberOfClass:[UIButton class]];'我發現如果一個人不工作,其他的工作完美 – Popeye

回答

1

我結束了寫這個樣本之一you..it完美的作品...

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
myButton.frame = CGRectMake(100, 100, 160, 50); 
[myButton setTitle:@"click me" forState:UIControlStateNormal]; 
[self.view addSubview:myButton]; 

for (id view in self.view.subviews) 
{ 

    NSLog(@"%@",NSStringFromClass([view class])); 

    if ([view isKindOfClass:[UIButton class]]) 

    { 
     //dsnt get here 
     UIButton *btn = view; 
    } 
} 

enter image description here

0
for (UIButton *btnNew in self.view.subviews) 
{   
    NSLog(@"%@",NSStringFromClass([btnNew class])); 
    if ([btnNew isKindOfClass:[UIButton class]]) 
    { 
    //dsnt get here 
    UIButton *btn = btnNew; 
    } 
}