创建UIButton按钮的注意事项

设置buntton中的文字和文字颜色,使用方法  [allOrderBtn setTitle:@"查看全部订单" forState:UIControlStateNormal];  [allOrderBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];,而不能使用allOrderBtn.titleLabel.text = [NSString stringWithFormat:@"查看全"];  allOrderBtn.titleLabel.textColor = [UIColor blackColor];使用后者不会展示出来。由此注意:在设置button的属性时,如果有相应的设置方法,就不要使用点语法

 

 

1)在同一个方法中,不能创建不同样式(即配置不同的属性,如一些属性使用,另一些不使用;属性要使用必须创建的所有按钮都使用才不会报错)的按钮,会报错,如下面错误案例:

- (instancetype)init

{       self = [super init];

    if (self) {

              for (int i = 0; i < 5; i++) {

            UIButton *btn = [[UIButton alloc] init];

            btn.tag = i;

                      if (i == 2) {

                       //UIButton *composeBtn = [[UIButton alloc] init];

            [btn setBackgroundImage:[UIImage imageNamed:@"tabbar_compose_button"] forState:UIControlStateNormal];

            [btn setBackgroundImage:[UIImage imageNamed:@"tabbar_compose_button_highlighted"] forState:UIControlStateHighlighted];

//因为这个配置和下面的按钮配置不一样,所以错误。即使是这个按钮自己新建按钮对象composeBtn 也是错误的,同样类型的控件在同一方法中要配置相同,否则错误

            [btn setImage:[UIImage imageNamed:@"tabbar_compose_icon_add"] forState:UIControlStateNormal];

            [btn setImage:[UIImage imageNamed:@"tabbar_compose_icon_add_highlighted"] forState:UIControlStateHighlighted];

            [btn addTarget:self action:@selector(composeClick) forControlEvents:UIControlEventTouchUpInside];

            [btn sizeToFit];

                    }else{

            NSString *nor = self.normalString[i];

            NSString *high = self.highString[i];

            [btn setBackgroundImage:[UIImage imageNamed:nor] forState:UIControlStateNormal];

            [btn setBackgroundImage:[UIImage imageNamed:high] forState:UIControlStateHighlighted];

            [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];

            [self addSubview:btn];

        }

    }

    return self;

}

转载于:https://my.oschina.net/llfk/blog/714571

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值