don*_*sci 0 iphone objective-c ios
我在UIButtons上的操作遇到了一些麻烦.我正在以编程方式创建4个按钮,但我无法触发TouchUpInside事件.
我已经阅读了SO但是我仍然遇到麻烦所以任何指针都会非常感激!
这是我创建和设置按钮及其动作的代码:
UIButton *btn;
float newWidth = 10;
for (int i = 0; i < _btnImages.count; ++i) {
btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
CGRect imageFrame = CGRectMake(/*X*/newWidth, /*Y*/height - 80, 65, 65);
btn.frame = imageFrame;
btn.tag = i;
[btn setBackgroundImage:[UIImage imageNamed:[_btnImages objectAtIndex:i]] forState:UIControlStateNormal];
[btn addTarget:self
action:@selector(btnSelected:)
forControlEvents:UIControlEventTouchUpInside];
[btn setEnabled:true];
[self addSubview:btn];
newWidth = newWidth + 75;
}
Run Code Online (Sandbox Code Playgroud)
这是btnSelected方法:
-(void)btnSelected:(UIButton *)button
{
NSLog(@"Button %ld Clicked",(long int)[button tag]);
}
Run Code Online (Sandbox Code Playgroud)
您显示的代码没问题.可能的问题是:
您正在将按钮添加到禁用了用户交互的视图中(或者其任何祖先禁用了用户交互).
你的按钮被他们的超级视图剪辑.确保您的按钮位于其超视图的范围内(并且超视图位于其超视图的范围内等).
当您的视图上有手势识别器时,可能会发生其他问题 - 他们可以延迟和取消子视图中的触摸,包括按钮.确保某些手势识别器不处理触摸事件.
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |