1.是设置按钮的frame大,设置按钮中的图片区域小(不是背景图),这有两种实现方法
第一种:
button.
imageEdgeInsets
=
UIEdgeInsetsMake
(
15
, 15
,
15
, 15
);设置按钮中的imageview区域距离按钮吃内间距个方向都是15,使图片区域变小。这也可以用来保证按钮中间的图片不会被拉伸,计算内间距是按钮中的图片区域正好是图片的此处。
第二种:
实现方式是自己写个button继承UIButton,重写button的
– (
CGRect
)imageRectForContentRect:(
CGRect
)contentRect{
return
CGRectMake
(
self
.
frame
.
size
.
height
*
0.175
,
0
,
self
.
frame
.
size
.
height
*
0.65
,
self
.
frame
.
size
.
height
*
0.65
);
}
方法,返回的尺寸是按钮中的imageview在按钮中的区域。这种方法可以用来实现按钮上面是图片下面是文字的按钮。自定义按钮中显示的位置。
2.是设置按钮的尺寸小,重写按钮的响应区域,让按钮的响应区域变大。也是创建个按钮继承UIButton,重写
/**
重写响应区域
@param point
点击的位置
pointInside一般和HitTest一起使用 用来写事件的响应分发
@param event
点击的事件
@return
是否响应
*/
-(
BOOL
)pointInside:(
CGPoint
)point withEvent:(
UIEvent
*)event{
//计算需要响应的区域 按钮左右两边各多出100的宽度来响应
CGRect
responseRect=
CGRectMake
(
-100
,
0
,
ScreenWidth+2*100
,
ScreenHeight
);
NSLog
(
@”
响应的区域
======%@ ”
,
NSStringFromCGRect
(responseRect));
return
CGRectContainsPoint
(responseRect, point);
}
这种方法可以用来自定义个view,来替换VC中的view,是view的响应区域变大,整屏翻页的时候可以用到。