美文网首页UIKitSwift
iOS CGRect insetBy方法、改变UIButton有

iOS CGRect insetBy方法、改变UIButton有

作者: gaookey | 来源:发表于2020-10-29 23:21 被阅读0次
@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)
    }
}

相关文章

网友评论

    本文标题:iOS CGRect insetBy方法、改变UIButton有

    本文链接:https://www.haomeiwen.com/subject/jppumktx.html