效果图:
一、分析:
先做中间的Label
,设置约束:垂直、水平居中即可
二、拓展 : Label(文字):如何在storyboard / Xib
中显示多行文字?
两种方法:
第一种:在xib中设置
(1.)Lines
设为0
(2.)每到要换行时,就按option + enter
快捷键
(3.)设置文字居中
并更新一下
第二种:用代码
** 三、注意:**
按钮若不设置宽高,会根据图片(
backImage
)自动调整大小按钮样式
system
/custom
会影响按钮点击后的显示Xib添加完控件,建议在左边写好名字:区分控件
Xib/storyboard
不允许控件里放控件,一般在View
或者Scrollview
里可以放控件
四、按钮状态研究
(1)按钮一般有四种状态:
-
UIControlStateNormal
- 1> 除开UIControlStateHighlighted、UIControlStateDisabled、UIControlStateSelected以外的其他情况,都是normal状态
- 2> 这种状态下的按钮【可以】接收点击事件
-
UIControlStateHighlighted
- 1>【当按住按钮不松开】或者【highlighted = YES】时就能达到这种状态
2> 这种状态下的按钮【可以】接收点击事件
-
UIControlStateDisabled
- 1>【button.enabled = NO】时就能达到这种状态
- 2> 按钮无法点击,这种状态下的按钮【无法】接收点击事件,
-
UIControlStateSelected
- 1>【button.selected = YES】时就能达到这种状态
- 2> 按钮可以点击,这种状态下的按钮【可以】接收点击事件
(2)让按钮无法点击的2种方法
1>button.enabled = NO;
【会】进入UIControlStateDisabled状态
2>button.userInteractionEnabled = NO;
【不会】进入UIControlStateDisabled状态,继续保持当前状态
(3)控制disabled和selected状态会出现的问题
控制Disabled状态--->问题:再次点击无反应
控制selected状态--->问题:会出现闪的情况,推荐使用,可以监听点击,作刷新
(4)应用场景一:切换按钮文字 如:百思不得姐的【注册账号】与【已有账号】之间的切换
其实是在Normal
和Selected
之间来回切换
sender.selected = !sender.selected;
(5)应用场景二:如百思不得姐点击当前按钮变红色,上一个按钮变回黑色
效果图:
正常步骤:
1、搞一属性记录----当前被选中的按钮
2、三步曲:
(1)上一次按钮变灰
(2)当前按钮变红,
(3) 当前按钮变成上一次按钮
缺点:
(1)的颜色要与之前按钮设置的颜色一致,如果之前的按钮颜色改变,三步曲中的按钮颜色也要改变------>不推荐使用
推荐使用 :利用按钮状态来控制按钮颜色的改变
实现代码:
/** 当前被选中的按钮 */
@property (nonatomic, weak) XMGTitleButton *selectedTitleButton;
#pragma mark - 监听
- (void)titleClick:(XMGTitleButton *)titleButton
{
// 控制按钮状态
self.selectedTitleButton.selected = NO;
titleButton.selected = YES;
self.selectedTitleButton = titleButton;
}