在html中有個(gè)很常用的組件radio弓柱,在日常開(kāi)發(fā)中經(jīng)常能夠遇到侧但。然而很遺憾UIKit并沒(méi)有提供這一組件,導(dǎo)致在開(kāi)發(fā)類(lèi)似的功能時(shí)禀横,時(shí)常需要寫(xiě)一些無(wú)關(guān)業(yè)務(wù)的冗余代碼屁药,極其的不優(yōu)雅酿箭。于是乎封裝一個(gè)簡(jiǎn)單易用复亏,小巧靈活的redio組件在某個(gè)無(wú)所事事的下午被我提上日程缭嫡。
先上demo地址
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 300, 200, 30)];
[self.view addSubview:label];
YsyRadio *radio1 = [YsyRadio creatRadioWithName:@"蘋(píng)果" val:@"1" selected:YES];
radio1.frame = CGRectMake(20, 100, 100, 30);
YsyRadio *radio2 = [YsyRadio creatRadioWithName:@"梨子" val:@"2" selected:NO];
radio2.frame = CGRectMake(20, 140, 100, 30);
YsyRadio *radio3 = [YsyRadio creatRadioWithName:@"香蕉" val:@"3" selected:NO];
radio3.frame = CGRectMake(20, 180, 100, 30);
[YsyRadioGroup onView:self.view select:^(YsyRadio *radio) {
label.text = [NSString stringWithFormat:@"name:%@ val:%@",radio.name,radio.val];
} radios:radio1,radio2,radio3,nil];
可以看到所有使用代碼都在這里,api設(shè)計(jì)的也很簡(jiǎn)單妇蛀。對(duì)項(xiàng)目友好無(wú)入侵。
注意
有一點(diǎn)需要注意的是评架,如果你使用masonry布局,需在以下方法調(diào)用完成后布局纵诞,因?yàn)樵摲椒ㄍ瓿闪私M件添加到父視圖的工作上祈,若在此之前使用masonry將會(huì)導(dǎo)致崩潰挣磨。
/// 核心方法
/// @param view 父視圖
/// @param select 點(diǎn)擊選擇的回掉block(block里需避免循環(huán)引用!請(qǐng)用weakSelf)
/// @param radio 可變參數(shù)茁裙,可往里添加多個(gè)radio對(duì)象,組成一組
+(YsyRadioGroup *)onView:(UIView *)view select:(radioSelect)select radios:(YsyRadio *)radio, ...;
有需要的同學(xué)可以打開(kāi)demo嘗試一下晤锥。要是你覺(jué)得好用掉蔬,請(qǐng)點(diǎn)亮小星星??矾瘾。