gpt4 book ai didi

iphone - 有没有办法让 Round Rect 按钮拍摄完全相同大小的图像?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:57 27 4
gpt4 key购买 nike

有没有办法让 Round Rect 按钮拍摄完全相同大小的图像?有没有圆形按钮?我有一个包含许多按钮图像的项目,它们混合在一起。图片大部分是圆形的,按钮是矩形的,所以当我将它们彼此靠近放置时,它们会混合在一起。

最佳答案

当 iPhone 检测到屏幕上的触摸时,它会使用“ HitTest ”找到触摸的 View 。默认情况下, HitTest 假定每个 View 都是一个矩形。

如果您希望 HitTest 将您的 View 视为不同的形状,您需要创建一个子类(在您的情况下为 UIButton)并覆盖 pointInside:withEvent: 测试您要使用的形状的方法。

例如:

@implementation MyOvalButton

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

我还没有测试过那个代码。

快速版本:

class MyOvalButton: UIButton {

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

不要忘记在 Storyboard或 xib 中将按钮的自定义类设置为 MyOvalButton,如果这是您创建按钮的地方。

这是一个演示,我在其中连接了按钮的按下和触摸事件,以便在触摸按钮时将背景变为灰色:

demo

关于iphone - 有没有办法让 Round Rect 按钮拍摄完全相同大小的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com