用OC实现自定义按钮的图片和文字布局
实现按钮中的文字和图片自定义布局的方法很简单,只要在按钮添加到父视图之前获取到文字和图片属性,修改其frame就行,这里介绍一种设置的方法
- (instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor whiteColor];
self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
[self setTintColor:[UIColor blackColor]];
}
return self;
}
//重写该方法可以改变图片显示的位置
//2018年06月22日 更正一下实现方法,在获取到图片时再进行布局
- (CGRect)imageRectForContentRect:(CGRect)contentRect{
if (self.currentImage) {
contentRect.size.width = self.currentImage.size.width;
contentRect.size.height = self.currentImage.size.height;
contentRect.origin.x = (self.bounds.size.width - contentRect.size.width)/2;
contentRect.origin.y = 0;
}
return contentRect;
}
//重写该方法可以改变文字显示的位置
- (CGRect)titleRectForContentRect:(CGRect)contentRect{
contentRect.size.height *= 0.10;
contentRect.origin.y = (self.bounds.size.height * 0.7);;
return contentRect;
}
//屏蔽自灰效果
- (void)setHighlighted:(BOOL)highlighted{
}