可点击区域圆角矩形ios

时间:2014-11-26 12:28:21

标签: ios objective-c iphone swift

我试图绘制一个圆形/椭圆形/椭圆形' iOS中的自定义UIView(使用swift)

我正在使用子类绘制UIView,如下所示

import Foundation
import UIKit

class CustomEllipse: UIView {


  override func drawRect(rect: CGRect)
  {
    var ovalPath = UIBezierPath(ovalInRect: rect)
    UIColor.grayColor().setFill()
    ovalPath.fill()
  }

}

这会产生类似于以下

的输出

enter image description here

我现在需要为此' CustomEllipse'定义可点击区域。

但是,当我为' CustomElipse'定义UITapGestureRecognizer时,默认情况下可以点击上面看到的黑角。

有没有办法让灰色椭圆可以点击?

1 个答案:

答案 0 :(得分:1)

您可以通过覆盖pointInside(_: withEvent:)方法自定义可点击区域。 默认情况下,该区域与bounds矩形相同。

在这种情况下,您可以在UIBezierPath中使用containsPoint()方法。像这样:

class CustomEllipse: UIView {

    var ovalPath:UIBezierPath?

    override func drawRect(rect: CGRect) {
        ovalPath = UIBezierPath(ovalInRect: rect)
        UIColor.grayColor().setFill()
        ovalPath!.fill()
    }

    override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
        return ovalPath?.containsPoint(point) == true
    }
}