UIKitSwift

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 轴的偏移,正数则向下移动,负数则向上移动

dxdy 移动后,宽高也会对应的调节

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)
    }
}
上一篇 下一篇

猜你喜欢

热点阅读