4. UIButton 按钮
2017-09-13 本文已影响0人
LucXion
标签:按钮背景尺寸、内容偏移、按钮自带的点击效果、取消高亮
-
常用技巧
1.根据button设置navigationitem(可取消点击闪烁效果)
self.rightItem = [[UIBarButtonItem alloc]initWithCustomView:rightBtn];
2.给按钮设置背景图片
[btn setImage:newImage forState:UIControlStateNormal];
3.设置按钮背景图片的尺寸
-(CGRect)imageRectForContentRect:(CGRect)contentRect
4.设置点击改变按钮的背景图片
[btn setBackgroundImage :[UIImage imageNamed:@"LuckyRototeSelected"] forState:UIControlStateSelected];
//手动设置状态
sender.selected = YES;
5.设置按钮内容偏移
btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;
//但是问题又出来,此时文字会紧贴到做边框,我们可以设置
btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
//设置图片内容的填充模式为按原大小中心对齐(添加小箭头)
titleButton.imageView.contentMode = UIViewContentModeCenter;
//设置图片内容超出部分不切割,为YES则切割,为NO则不切割,默认为YES
titleButton.imageView.clipsToBounds = NO;
//设置内容的整体左边内间距
titleButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
//设置文字的左边内间距
titleButton.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0);
//设置按钮内容整体居左
titleButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
6.Unbutton的字体,通过本身label控件来实现
btn .titleLable.font
7.设置两个按钮圆角
[self.getAuthCodeBtn.layer setMasksToBounds:YES];
[self.getAuthCodeBtn.layer setCornerRadius:15];
8.取消按钮高亮
[btn addTarget:self action:@selector(preventFlicker:) forControlEvents:UIControlEventAllTouchEvents];
/**
去除按钮高亮
*/
-(void)preventFlicker:(UIButton*)sender{
sender.highlighted = NO;
}
9.取消按钮能选中状态,重写按钮类中的
-(void)setHighlighted:(BOOL)highlighted{
不需要返回什么,写就行了
}
10.其他属性
10.1.adjustsImageWhenDisabled
当按钮禁用的情况下,图像的颜色会被画深一点,默认为YES。
10.2.adjustsImageWhenHighlighted
当按钮高亮的情况下,图像的颜色会被画深一点,默认为YES。
10.3.showsTouchWhenHighlighted
// 点击时的闪光效果会被前景图片遮住中间部分;
button.showsTouchWhenHighlighted=YES;