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 に答える