[英]UIButton - changing frame alters response to touches
我有一个 UIButton。 我发现当我移动它时,它不再响应触摸。 让我详细解释一下我是如何确定这一点的:当我将一个 100 像素宽度的按钮向右移动 50 像素时,只有左半边响应了我的手指点击它。
当我动态更改它的框架时,如何告诉按钮“更新您的触摸检查器”? 我正在更改代码中的框架,而不是在 xib 中。
初始化:
MATCGlossyButton *repeat = [[MATCGlossyButton alloc] init];
[repeat addTarget:self action:@selector(repeatPressed:) forControlEvents:UIControlEventTouchUpInside];
[repeat setTitle:@"Repeat" forState:UIControlStateNormal];
repeat.buttonColor = [UIColor brownColor];
repeat.backgroundColor = [UIColor clearColor];
repeat.cornerRadius = 20;
repeat.frame = CGRectMake(200,208,105,50);
然后稍后:
repeat.frame = CGRectMake(265, 208, 105, 50);
您是否有可能将按钮移动到其父视图的范围之外? 即使剪裁关闭,触摸也不会传播到视图之外。
可视化视图边界的一种简单方法是执行以下操作:
#import <QuartzCore/QuartzCore.h>
[...]
view.layer.borderWidth = 1;
view.layer.borderColor = [UIColor redColor].CGColor;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.