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

时间:2011-07-06 23:54:08

标签: iphone ios ipad uibutton

我有一个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);

1 个答案:

答案 0 :(得分:1)

您是否有可能将按钮移动到其父视图的边界之外?即使裁剪已关闭,触摸也不会在视图外传播。

可视化视图边框的简单方法是执行以下操作:

#import <QuartzCore/QuartzCore.h>

[...]

view.layer.borderWidth = 1;
view.layer.borderColor = [UIColor redColor].CGColor;