1

UIButtonはで作成されたビューを持っています

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;
    }
}

制御が if ブロックに入ることはありません。

NSLog(@"%@", NSStringFromClass([view class]));「UIRoundedRectButton」を出力します。クラスが であるかどうかを確認するにはどうすればよいUIButtonですか?

UIButton *btn = [[UIButton alloc] init];目的の結果が得られますが、ボタンの種類を後で設定することはできません。

4

2 に答える 2

1

私はあなたのためにこのサンプルを書くことになりました..それは完全に機能します...

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;
    }
}

ここに画像の説明を入力

于 2013-01-24T10:10:40.860 に答える
0
for (UIButton *btnNew in self.view.subviews) 
{        
    NSLog(@"%@",NSStringFromClass([btnNew class]));
    if ([btnNew isKindOfClass:[UIButton class]]) 
    {
     //dsnt get here
     UIButton *btn = btnNew;
     }
}
于 2013-01-24T10:09:17.143 に答える