??我們?cè)趯?xiě)注冊(cè)界面時(shí),寫(xiě)注冊(cè)和密碼找回按鈕時(shí)盈电,且注冊(cè)和密碼找回按鈕在一起時(shí)蝴簇,如下圖所示:
Simulator Screen Shot 2017年5月30日 上午10.43.06.png
??我們常常需要兩個(gè)按鈕來(lái)實(shí)現(xiàn),但是匆帚,這樣適配起來(lái)就不方便了熬词,控件越多越不好適配,所以最好用一個(gè)控件來(lái)完成這個(gè)效果吸重。
??分段控制器UISegmentedControl可以實(shí)現(xiàn)該效果荡澎,代碼如下:
UISegmentedControl *SCtrl = [[UISegmentedControl alloc] initWithItems:@[@"注冊(cè)",@"找回密碼"]];// 設(shè)置分段標(biāo)題
SCtrl.frame = CGRectMake(CGRectGetWidth(self.view.frame)/3, CGRectGetHeight(self.view.frame) - 40, CGRectGetWidth(self.view.frame)/3 , 20);// 設(shè)置分段控制器的位置和大小
SCtrl.tintColor = [UIColor clearColor];// 將分段控制器的tintColor(包括邊框,分段間隔晤锹,等等設(shè)置為無(wú)色)
[SCtrl setDividerImage:[UIImage imageNamed:@"line"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];// 設(shè)置標(biāo)簽之間分隔線圖案(讓設(shè)計(jì)給個(gè)中間的豎線圖)
[SCtrl setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithRed:163/255.f green:163/255.f blue:163/255.f alpha:1], NSFontAttributeName:[UIFont systemFontOfSize:16.0]} forState:UIControlStateNormal];// 設(shè)置標(biāo)題顏色和字號(hào)等等
SCtrl.apportionsSegmentWidthsByContent = YES;// 根據(jù)內(nèi)容定制寬度(根據(jù)標(biāo)題內(nèi)容自設(shè)分段寬度)
[SCtrl addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];// 添加點(diǎn)擊事件摩幔,點(diǎn)擊事件為UIControlEventValueChanged,不是UIControlEventTouchUpInside鞭铆,否則會(huì)無(wú)效或衡,這里要注意
SCtrl.momentary = YES;// 點(diǎn)擊后恢復(fù)原狀態(tài)(默認(rèn)是NO焦影,為NO時(shí),某個(gè)分段點(diǎn)擊后就會(huì)一直處于選中狀態(tài)封断,在點(diǎn)擊這個(gè)分段就會(huì)沒(méi)有效果斯辰,設(shè)置為YES后,點(diǎn)擊后不會(huì)處于選中狀態(tài)坡疼,一個(gè)分段可以聯(lián)系點(diǎn)擊)
[self.view addSubview:SCtrl];
#pragma mark- 分段控制器點(diǎn)擊事件
- (void)change:(UISegmentedControl *)sender {
if (sender.selectedSegmentIndex == 0) {
NSLog(@"彈出注冊(cè)界面");
}else if (sender.selectedSegmentIndex == 1) {
NSLog(@"彈出密碼找回界面");
}
}
??該段代碼可以實(shí)現(xiàn)如上圖所示效果彬呻,這樣一個(gè)控件就可以實(shí)現(xiàn)注冊(cè)/密碼找回效果,且適配時(shí)只需適配分段控制器柄瑰。
參考
1.iOS-UIKit框架學(xué)習(xí)—UISegmentedControl
2.UISegmentedControl屬性
3.iOS開(kāi)發(fā)之分段控制器
??不知道大家有沒(méi)有更好的方法來(lái)實(shí)現(xiàn)這個(gè)效果……歡迎留言