為iOS添加radio組件

ysy普拉亞· 2020-08-06

在html中有個很常用的組件radio,在日常開發中經常能夠遇到。然而很遺憾UIKit并沒有提供這一組件,導致在開發類似的功能時,時常需要寫一些無關業務的冗余代碼,極其的不優雅。于是乎封裝一個簡單易用,小巧靈活的redio組件在某個無所事事的下午被我提上日程。

先上demo地址

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 300, 200, 30)];
[self.view addSubview:label];

YsyRadio *radio1 = [YsyRadio creatRadioWithName:@"蘋果" 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];

demo樣圖

可以看到所有使用代碼都在這里,api設計的也很簡單。對項目友好無入侵。

注意 有一點需要注意的是,如果你使用masonry布局,需在以下方法調用完成后布局,因為該方法完成了組件添加到父視圖的工作,若在此之前使用masonry將會導致崩潰。

 /// 核心方法
 /// @param view   父視圖
 /// @param select 點擊選擇的回掉block(block里需避免循環引用!請用weakSelf)
 /// @param radio  可變參數,可往里添加多個radio對象,組成一組
 +(YsyRadioGroup *)onView:(UIView *)view select:(radioSelect)select radios:(YsyRadio *)radio, ...;

有需要的同學可以打開demo嘗試一下。要是你覺得好用,請點亮小星星??。

丰禾棋牌官网1369 股票买入卖出规则 炒股票app哪个软件好 广东11先5走势图一定牛 秒速赛车开奖结果历史记录 股票分析师培训 江苏快三全天实时计划 云南时时彩平台 福彩辽宁35选7走势图 北京快三预测软件 华东15选5升奖直播