- CGRectInset和CGRectOffset
inset:英文意思为插入、镶嵌的意思,其实我们可以理解为距离边距的意思
offset:英文意思为偏移量, 在开发中也是偏移的意思
- 在iOS开发中,我们如果需要从一个rect 坐标得到一个中心点不变放大或者缩小的rect,我们可以用CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)函数完成,其实我们简单理解就是我上边说的,从几何上理解,那么就是先x轴平移dx, y轴平移dy,rect 宽度缩小2*dx, rect高度缩小2*dy。
- 如果我们只需要平移的话,那么我们可以用CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy)函数完成
- 关于扩大button的响应区域
以前如果我想要扩大一个button的响应区域,我的做法可能增加button的宽、高。其实这也能达到目的,但是我们有更有效,而不需要这么生硬的解决办法。
其实UIView为我们提供了一个方法:- (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event; 这个方法是需要返回点击的点是否在接收view包含的点中,利用这个方法我们就可以扩大我们的frame区域,判断响应的点击点是不是在这个区域内,当然就用到了我们上边说的CGRectInset函数,中心点不变放大或者缩小frame。
网友评论