Geo*_*rge 2 iphone xcode objective-c ios ios-simulator
圆形矩形按钮是否有一种方法可以获得完全相同的图像尺寸?是否有任何圆形按钮?我有一个带有许多按钮图像的项目,它们混合在一起.图像大多是圆形的,按钮是矩形的,所以当我把它们放在一起时,它们会混合在一起.
当iPhone检测到屏幕上的触摸时,它会使用"点击测试"找到触摸的视图.默认情况下,命中测试假定每个视图都是一个矩形.
如果您希望命中测试将视图视为不同的形状,则需要创建一个子类(UIButton
在您的情况下)并覆盖该pointInside:withEvent:
方法以测试您要使用的形状.
例如:
@implementation MyOvalButton
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:self.bounds];
return [path containsPoint:point];
}
Run Code Online (Sandbox Code Playgroud)
我还没有测试过那段代码.
Swift版本:
class MyOvalButton: UIButton {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
return UIBezierPath(ovalIn: bounds).contains(point)
}
Run Code Online (Sandbox Code Playgroud)
不要忘记MyOvalButton
在故事板或xib中设置按钮的自定义类,如果这是您创建按钮的位置.
这是一个演示,我已经连接按钮的触摸和触摸事件,以便在触摸按钮时将背景变为灰色:
归档时间: |
|
查看次数: |
544 次 |
最近记录: |