iOS UIButton的常用属性

释放双眼,带上耳机,听听看~!
1.在设置button的属性时,用titleLabe设置不起作用,UIButton继承于UIControl,需要设置状态,

按钮中得label的frame默认是(0,0,0,0);hidden 的属性默认是YES;

2.button中的图片文字排列:默认时图片在左,文字在右   


注意:设置按钮文字的状态不能用UIControlStateHighLighted否则控制台会报警告   可以用选中状态的UIControlStateSelected


 // 实例化一个button

    UIButton *headerButton = [[UIButtonalloc]init];

    



    /**

     设置背景图片

     设置图片的时候,哪些一定要分状态

     title/titleColor , image , backgroudImage

     

     button.titleLabel.font  // 所有状态下的文本大小

     */

 [btn setTitle:@"按钮"forState:UIControlStateNormal];



    [btn setTitleColor:[UIColorredColor]forState:UIControlStateNormal];

//设置按钮的图片时,UIControlStateHighlighted就相当于点击按钮时;



    [headerButton setBackgroundImage:[UIImageimageNamed:@"buddy_header_bg"]forState:UIControlStateNormal];

    [headerButton setBackgroundImage:[UIImageimageNamed:@"buddy_header_bg_highlighted"]

forState:UIControlStateHighlighted];

    

    // 设置图片

    [headerButton setImage:[UIImageimageNamed:@"buddy_header_arrow"]forState:UIControlStateNormal];

    

    // 给title 设置颜色

    [headerButton setTitleColor:[UIColorblackColor]

forState:UIControlStateNormal];

    

    // 设置button的水平对其方式

    headerButton.contentHorizontalAlignment =UIControlContentHorizontalAlignmentLeft;

    [self.collectBtnsetContentHorizontalAlignment:

UIControlContentHorizontalAlignmentLeft];//设置水平方向的位置居左

    [self.collectBtnsetContentVerticalAlignment:

UIControlContentVerticalAlignmentTop];//设置竖直方向的位置居上



//返回label的size大小

    CGSize ttitleSize = [self.collectBtn.titleLabel.text sizeWithAttributes:@{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:10] }];

    // 设置图片的内边距

    headerButton.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

    

    // 设置文本的内边距

    headerButton.titleEdgeInsets = UIEdgeInsetsMake(0, 15, 0, 0);

    

    /**

     保证button的imageView在旋转之后保持原有的形状

     UIViewContentModeScaleToFill,  拉伸填充

     UIViewContentModeScaleAspectFit,  自适应

     UIViewContentModeScaleAspectFill,  自适应填充

     UIViewContentModeCenter,   保持原有的尺寸

     */

    

    headerButton.imageView.contentMode =UIViewContentModeCenter;

    

    // clipsToBounds = YES; 超出父view的边界的部分将会被剪切掉

    headerButton.imageView.clipsToBounds =NO;

    

  3.  //为按钮添加点击事件

    [headerButton addTarget:self

                     action:@selector(didLClickButton:)

           forControlEvents:UIControlEventTouchUpInside];

    

4. //获取按钮图片和标题

UIImage *image = [btn backgroundImageForState:

UIControlStateHighlighted];//获取高亮状态下的图片;

 UIImage *img=btn.currentImage;//获取当前按钮的图片;

NSString *str =[btn titleForState:UIControlStateNormal];//获取正常状态下的按钮标题






        //取消失效状态的按钮图像调整

        self.adjustsImageWhenDisabled =NO;

        

        // 取消高亮状态的按钮图像调整

        self.adjustsImageWhenHighlighted =NO;



5.=======按钮中的点击事件:


UIControlEventTouchDown
单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
UIControlEventTouchDownRepeat
多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
UIControlEventTouchDragInside
当一次触摸在控件窗口内拖动时。
UIControlEventTouchDragOutside
当一次触摸在控件窗口之外拖动时。
UIControlEventTouchDragEnter
当一次触摸从控件窗口之外拖动到内部时。
UIControlEventTouchDragExit
当一次触摸从控件窗口内部拖动到外部时。
 
UIControlEventTouchUpInside
所有在控件之内触摸抬起事件。
UIControlEventTouchUpOutside
所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
UIControlEventTouchCancel
所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
UIControlEventTouchChanged
当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
UIControlEventEditingDidBegin
当文本控件中开始编辑时发送通知。
UIControlEventEditingChanged
当文本控件中的文本被改变时发送通知。
UIControlEventEditingDidEnd
当文本控件中编辑结束时发送通知。
UIControlEventEditingDidOnExit
当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
UIControlEventAlltouchEvents
通知所有触摸事件。
UIControlEventAllEditingEvents
通知所有关于文本编辑的事件。
UIControlEventAllEvents
通知所有事件。

6.=============吧按钮放到最顶层

[self.view bringSubviewToFront:self.cameraBtn];


7。=================按钮标题自适应大小

*********1、确定Label或Button的字体大小,使其宽度自适应



UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];

contentLabel.font = [UIFont systemFontOfSize:15];//-------->定义Font的大小

contentLabel.backgroundColor = [UIColor redColor];

contentLabel.text = @"我已知晓,且已阅读并同意以上条款";

[contentLabel sizeToFit];//-------->字体大小固定,宽度自适应

[self.View addSubview:contentLabel];

************2、确定Label或Button的宽度,使字体大小自适应



//无需自己设置字体大小

UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];

contentLabel.backgroundColor = [UIColor redColor];

contentLabel.text = @"我已知晓,且已阅读并同意以上条款";

contentLabel.adjustsFontSizeToFitWidth = YES;//宽度固定,字体大小自适应

[self.View addSubview:contentLabel];

***********如果是Button的话,和上面一样,只有一点小小的区别:



[button.titleLabel  sizeToFit];

button.titleLabel.adjustsFontSizeToFitWidth = YES;

 

人已赞赏
iOS文章

iOS滑动条UISlider的使用方法

2019-12-15 12:32:44

iOS文章

iOS代码块

2019-12-15 15:31:39

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索