A-A+

为iOS添加radio组件

2020年08月08日 iOS入门教程 暂无评论
博客主机

在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, ...;
标签:

给我留言

Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录