设置 UIButton 文字内容位置的时候常会使用设置 UILable 的方式去对齐调试,但编译运行后发现文字样式并未能如愿以偿的改变,例如如下案例:
修改前
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundColor:[UIColor whiteColor]];
[btn setTitle:@"隐私协议" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
btn.titleLabel.font = [UIFont systemFontOfSize:14];
btn.titleLabel.textAlignment = UITextAlignmentLeft; // 尝试设置 btn 文字位置
btn.tag = 2000;
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
_btnPolicy = btn;
修改后
首先对 UIButton 的 contentHorizontalAlignment 或者 contentVerticalAlignment 进行横纵水平方位的改变(具体方位可参考其枚举进行选择);
其次,设置其与边距的偏移量,因为设置方向后其文字内容是与控件边框贴合的很不美观;
最后,对其 UIButton 调整后的 code 如下:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundColor:[UIColor whiteColor]];
[btn setTitle:@"隐私协议" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
btn.titleLabel.font = [UIFont systemFontOfSize:14];
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; // 设置 btn 文字位置
btn.contentEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0); // 为 btn 文字内容设置偏移量
btn.tag = 2000;
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
_btnPolicy = btn;
以上便是此次分享的全部内容,希望能对大家有所帮助!
网友评论