0

我想创建一个自定义圆形视图。

我做了一个 UIControl 子类,并命名为 CircleView。我已经应用了圆角半径来使看起来像圆形。

circleView  = [[CircleView alloc]initWithFrame:CGRectmake(0, 0 , 200, 200)];

接下来我已导入到根视图控制器,并分配了框架以在我的根视图控制器上显示。所以我的问题是,

当我触摸视图的角落时,它对事件的反应。为什么..?是否可以在半径圈中添加事件。

4

1 回答 1

3

无论您在该矩形内呈现什么形状,视图始终是一个矩形。

要使您的圈子视图仅响应圈子内的事件,您需要重写该hitTest:withEvent:方法。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    if (/* point is within circle */) {
        return self;
    } else {
        return nil;
    }
}
于 2013-09-07T18:16:49.357 回答