我遇到了问题: 我已经设置了一个属性:
@property (strong, nonatomic) UIButton *buttonX;
我还有一种创建按钮的方法:
-(void)createChooseButton : (UIButton *) button
{
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(0, 0, 50, 50);
button.layer.borderWidth = 1;
button.layer.borderColor = [[UIColor greenColor] CGColor];
if ([button isEqual:self.buttonX]) {
NSLog(@"Hello");
[button setTitle:@"X" forState:UIControlStateNormal];
button.center = CGPointMake(self.view.frame.size.width/3, self.view.frame.size.height*2/3);
}
[self.view addSubview:button];
}
当我从viewDidLoad调用此方法时,它不起作用,但如果我不使用If语句(使用isEqual),一切正常。 请问你能帮助我,我做错了什么?
答案 0 :(得分:0)
isEqual在这里不起作用,因为你有两个指针,一个指向按钮&第二个按钮X.如果你需要检查按钮,请在didload&中为buttonX指定一个标签属性。然后在createChooseButton方法中检查它。
答案 1 :(得分:0)
当你首先通过buttonX
时,它是零。
你必须alloc
然后调用方法。
你应该致电
_buttonX = [UIButton buttonWithType:UIButtonTypeRoundedRect];
然后致电
[createChooseButton:self.buttonX]
请勿在方法中调用 buttonWithType:UIButtonTypeRoundedRect