iOS

自定义控件说明

自定义控件能满足快速迭代的需要,我把常用的控件整理出来,欢迎使用。

####1.PageControl
由于系统的PageControl控件的限制,不能修改颜色,更换图片,修改大小。所以开发了此控件。

pagecontrol.gif

1
2
3
4
5
6
/*默认使用颜色填充,还有其他参数可以修改* /
_pageControl.numberOfPages = 5;//一共多少页
[_pageControl setOffColor: [UIColor whiteColor]];//非当前页的圆点颜色
[_pageControl setOnColor: [UIColor redColor]];//当前页的圆点颜色
[_pageControl setIndicatorDiameter: 7.0f] ;//圆点的直径
[_pageControl setIndicatorSpace: 12.0f] ;//圆点之间的距离

####2.倒计时控件
项目中经常用到获取验证码的控件,用NSTimer控制时间,刷新按钮等。整理出来,避免代码冗余,使逻辑清晰。

倒计时.gif

1
2
3
4
5
IBOutlet LCCountDownButton *_countDownButton;//定义
_countDownButton.timeOut = 10;//设置时间,默认是60秒

按钮点击事件方法中调用:
[_countDownButton beginCountDown];//开始计时

####3.PlaceHolderTextView
系统的textview控件无法添加提示语,不能修改颜色,大小,对齐方式。提示语在没有内容时显示,填写的时候自动隐藏。
textView.gif

1
2
3
_textView.placeholder = @"请输入你想说的话...";//提示文本
_textView.placeholderColor = [UIColor redColor];//文本颜色
//_textView.placeHolderTextAlignment = NSTextAlignmentCenter;//对齐方式,默认左对齐

####4.评分控件
此控件有两个功能:
1)仅仅显示评分,一份代表一颗星,总分可以设置。
2)点击评分功能。

starRating.gif

####5.跑马灯效果
项目中如果文字过长,由于屏幕宽度的限制,显示不完整,但是文本又不能截取。跑马灯是这种情况下最好的解决方案。

跑马灯.gif

1
2
3
4
[_label setText:@"你发如雪 凄美了离别 我焚香感动了谁 邀明月 让回忆皎洁 爱在月光下完美"];//跑马灯文本
_label.backgroundColor = [UIColor clearColor];
_label.subLabel.backgroundColor = [UIColor clearColor];
_label.subLabel.textColor = [UIColor redColor];//文本颜色

####6.标签TagView
如下图所示。此控件经常用来显示个性标签。
tagView.png

1
2
3
4
5
6
7
8
9
10
11
12
13
//定义标签的文本属性
TagAttribute *attr = [[TagAttribute alloc] init];
attr.textBackgroundColor = [UIColor clearColor];//背景色
attr.textColor = [UIColor colorWithRed:0.0 green:144.0/255.0 blue:1.0 alpha:1.0];//文本颜色
attr.textFont = [UIFont systemFontOfSize:12.0];//文本大小
attr.borderDisplay = YES;//是否显示边框
attr.borderColor = [UIColor colorWithRed:140.0/255.0 green:204.0/255.0 blue:1.0 alpha:1.0];//文本框颜色
attr.horizotalPadding = 3.0;//间隔
_tagView.tagAttribute = attr;


_tagView.tags = @[@"自驾游",@"爱吹牛",@"90后",@"王菲",@"爱我别走,如果你说",@"喜欢陶喆",@"发如雪,凄美"];//标签内容,用数组传递。自动计算
[_tagView displayTags];//开始绘制

####7.segmentControl
此控件的主要作用就是减少冗余重复代码,减少开发者重复的判断和多余的开发。
只需要在布局文件上把父view类换成SegmentControl类别,可以达到自动控制。
segmentControl.gif

此控件不需要写代码。仅仅连接把父类类别更改即可。

以上所有代码:
LCControlDemo