我在这里遇到问题。我希望按钮能够完美地适应背景图像的尺寸。
例如:
正如您所看到的,“请求计划”菱形周围的框重叠或覆盖“查看计划”菱形,在运行时,当我点击“查看计划”菱形时,它实际上点击了“请求”计划“钻石因为它重叠。有没有办法解决这个问题?
答案 0 :(得分:0)
在故事板中,无论你想要什么等于加长,只需拖动到另一个对象并选择" Equal Widths"和#34;等长"。关于重叠,可以更改按钮或视图的顺序,也可以重新创建它。
答案 1 :(得分:0)
您可以创建CustomButton
类扩展UIButton,然后覆盖pointInside
override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
*we need check at this point inside or outside*
return self.alphaAtPoint(point) >= 127
}
我们可以通过检查alpha
值
func alphaAtPoint(point: CGPoint) -> CGFloat {
var pixel: [UInt8] = [0, 0, 0, 0]
let colorSpace = CGColorSpaceCreateDeviceRGB();
let alphaInfo = CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue)
let context = CGBitmapContextCreate(&pixel, 1, 1, 8, 4, colorSpace, alphaInfo)
CGContextTranslateCTM(context, -point.x, -point.y);
self.layer.renderInContext(context)
return CGFloat(pixel[3])
}