4. UIButton 按钮

标签:按钮背景尺寸、内容偏移、按钮自带的点击效果、取消高亮

  • 常用技巧

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;

你可能感兴趣的:(4. UIButton 按钮)