iOS CGRect insetBy方法、改变UIButton有
2020-10-29 本文已影响0人
gaookey
@available(iOS 2.0, *)
public func insetBy(dx: CGFloat, dy: CGFloat) -> CGRect
dx
代表 x
轴的偏移,正数则向右移动,负数则向左移动
dy
代表 y
轴的偏移,正数则向下移动,负数则向上移动
dx
和 dy
移动后,宽高也会对应的调节
let rect = CGRect(x: 100, y: 100, width: 100, height: 100)
// (100.0, 100.0, 100.0, 100.0)
print(rect)
let newRect = rect.insetBy(dx: 20, dy: 30)
// (120.0, 130.0, 60.0, 40.0)
print(newRect)
同理, public func inset(by insets: UIEdgeInsets) -> CGRect
函数一样的道理
let rect = CGRect(x: 100, y: 100, width: 100, height: 100)
// (100.0, 100.0, 100.0, 100.0)
print(rect)
let newRect = rect.inset(by: UIEdgeInsets(top: 20, left: 30, bottom: 10, right: 50))
// (130.0, 120.0, 20.0, 70.0)
print(newRect)
改变 UIButton
有效点击区域
import UIKit
class SPButton: UIButton {
var dx: CGFloat = 0
var dy: CGFloat = 0
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
let b = bounds.insetBy(dx: dx, dy: dy)
return b.contains(point)
}
}