有没有一种方法的圆形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的框架与图像的大小相同。