繁体   English   中英

UIButton - 改变框架会改变对触摸的响应

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM