有没有一种方法的圆形button来采取完全相同的大小的图像?

有没有一种方法的圆形button来采取完全相同的图像大小?有没有任何圆形button? 我有一个项目与许多button – 图像,他们混在一起。 图像大多是圆形的,矩形的button,所以当我把它们放在一起时,它们会混合在一起。

当iPhone在屏幕上检测到触摸时,使用“命中testing”find触摸的视图。 默认情况下,命中testing假定每个视图都是矩形。

如果您想要将testing视为不同的形状,则需要创build一个子类(在您的情况下为UIButton ),并重写pointInside:withEvent:方法来testing要使用的形状。

例如:

 @implementation MyOvalButton - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:self.bounds]; return [path containsPoint:point]; } 

我没有testing过这个代码。

Swift版本:

 class MyOvalButton: UIButton { override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { return UIBezierPath(ovalIn: bounds).contains(point) } 

不要忘记在故事板或xib中将button的自定义类设置为MyOvalButton,如果这是创buildbutton的地方。

这里有一个演示,我已经连接了触摸button和触摸事件的button来触摸button时背景灰色:

演示

回答你的问题:(希望我明白你真正想要的)

 [button setFrame:CGRectMake(button.frame.origin.x, button.frame.origin.y, image.size.width, image.size.height)]; 

这使得button的框架与图像的大小相同。