UIButton自定义图片文字位置
2016-11-24 本文已影响14人
cocoawork丶
- 根据type的不同形式可实现不同的排版效果
typedef enum {
CustomButtonTypeImageLeft = 0,
CustomButtonTypeImageRight,
CustomButtonTypeImageTop,
CustomButtonTypeImageBottom
}CustomButtonType;
- (void)setType:(CustomButtonType)type {
UIImage *image = self.imageView.image;
CGSize size1 = [self.titleLabel.text sizeWithFont:[UIFont systemFontOfSize:18]constrainedToSize:CGSizeMake(MAXFLOAT,self.titleLabel.frame.size.height)];
switch (type) {
case CustomButtonTypeImageLeft:{
break;
}
case CustomButtonTypeImageRight:{
self.titleEdgeInsets = UIEdgeInsetsMake(0, -image.size.width, 0, image.size.width);
self.imageEdgeInsets = UIEdgeInsetsMake(0, size1.width, 0, -size1.width);
break;
}
case CustomButtonTypeImageTop:{
self.titleEdgeInsets = UIEdgeInsetsMake(0.5*image.size.height, -0.5*image.size.width, -0.5*image.size.height, 0.5*image.size.width);
self.imageEdgeInsets = UIEdgeInsetsMake(-0.5*size1.height, 0.5*size1.width, 0.5*size1.height, -0.5*size1.width);
break;
}
case CustomButtonTypeImageBottom:{
self.titleEdgeInsets = UIEdgeInsetsMake(-0.5*image.size.height, -0.5*image.size.width, 0.5*image.size.height, 0.5*image.size.width);
self.imageEdgeInsets = UIEdgeInsetsMake(0.5*size1.height, 0.5*size1.width, -0.5*size1.height, -0.5*size1.width);
break;
}
default:
break;
}
}