iOS UI-常用控件

  1 #import "ViewController.h"
  2 
  3 @interface ViewController ()<UITextFieldDelegate>
  4 
  5 // 标题标签
  6 @property (strong, nonatomic) UILabel *titleLablel;
  7 // 分段控制器
  8 @property (strong,nonatomic) UISegmentedControl *segment;
  9 // 开关标签
 10 @property (strong,nonatomic) UILabel *switchLable;
 11 // 开关
 12 @property (strong,nonatomic) UISwitch *swtch;
 13 // 图片
 14 @property (strong,nonatomic) UIImageView  *progressView;
 15 // 等待指示器
 16 @property (strong, nonatomic) UIActivityIndicatorView *progressIndicate;
 17 // 下载按钮
 18 @property (strong,nonatomic) UIButton *progressBtn;
 19 // 进度条
 20 @property (strong,nonatomic) UIProgressView *progress;
 21 // 定时器
 22 @property (strong,nonatomic) NSTimer *timer;
 23 // 滑动条
 24 @property (strong,nonatomic) UISlider *slider;
 25 // 文本框
 26 @property (strong,nonatomic) UITextField *textField;
 27 
 28 @end
 29 
 30 @implementation ViewController
 31 
 32 #pragma mark - 标题标签
 33 - (void)createTitleLeblel
 34 {
 35     self.titleLablel = [[UILabel alloc] init];
 36     self.titleLablel.frame = CGRectMake(121, 16, 133, 45);
 37     self.titleLablel.font = [UIFont systemFontOfSize:26];
 38     self.titleLablel.textAlignment = NSTextAlignmentCenter;
 39     self.titleLablel.text = @"控件大全";
 40     [self.view addSubview: self.titleLablel];
 41     
 42 }
 43 
 44 #pragma mark - 分段控制器
 45 - (void) createSegmentControl
 46 {
 47     NSArray *array = @[@"first",@"second",@"third",@"fourth",@"defult"];
 48     self.segment =[[UISegmentedControl alloc] initWithItems:array];
 49     self.segment.frame = CGRectMake(22, 69, 331, 29);
 50     
 51     [self.segment addTarget:self action:@selector(segmentValueChanged:) forControlEvents:UIControlEventValueChanged];
 52     [self.view addSubview:self.segment];
 53 }
 54 
 55 #pragma mark - 分段器关联方法
 56 -(void)segmentValueChanged:(id)sender
 57 {
 58     UISegmentedControl *tempSegment = (UISegmentedControl*) sender;
 59     switch (tempSegment.selectedSegmentIndex) {
 60         case 0:
 61             self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
 62             break;
 63         case 1:
 64             self.view.backgroundColor= [UIColor orangeColor];
 65             break;
 66         case 2:
 67             self.view.backgroundColor = [UIColor yellowColor];
 68             break;
 69         case 3:
 70             self.view.backgroundColor = [UIColor greenColor];
 71             break;
 72         case 4:
 73             self.view.backgroundColor = [UIColor lightGrayColor];
 74             break;
 75 
 76         default:
 77             break;
 78     }
 79 
 80 }
 81 
 82 #pragma mark - 开关
 83 - (void) createSwitch
 84 {
 85     self.switchLable = [[UILabel alloc] initWithFrame:CGRectMake(22, 338, 164, 21)];
 86     
 87     self.switchLable.text = @"开启";
 88     [self.view addSubview:self.switchLable];
 89     
 90     self.swtch = [[UISwitch alloc] initWithFrame:CGRectMake(304, 333, 51, 31)];
 91     
 92     [self.swtch addTarget:self action:@selector(switchIsOnOrOff) forControlEvents:UIControlEventValueChanged];
 93     
 94     [self.swtch setOn:YES];
 95     
 96     [self.view addSubview:self.swtch];
 97     
 98 }
 99 #pragma mark - 开关关联方法
100 - (void)switchIsOnOrOff
101 {
102     if (self.swtch.isOn) {
103        // NSLog(@"开关打开");
104         self.titleLablel.hidden = NO;
105         self.progressBtn.hidden = NO;
106         self.progress.hidden = NO;
107         self.slider.hidden = NO;
108         self.textField.hidden = NO;
109         
110         
111     }
112     else{
113         // NSLog(@"开关关闭");
114         self.titleLablel.hidden = YES;
115         self.progressBtn.hidden = YES;
116         self.progress.hidden = YES;
117         self.slider.hidden = YES;
118         self.textField.hidden = YES;
119     }
120 
121 }
122 
123 #pragma mark - 下载
124 -(void) createDownLoad
125 {
126     //创建图片
127     self.progressView = [[UIImageView alloc] initWithFrame:CGRectMake(80, 119, 214, 170)];
128     self.progressView.image = [UIImage imageNamed:@"touxiang.jpg"];
129     self.progressView.hidden =YES;
130     [self.view addSubview:self.progressView];
131     
132     // 下载按钮
133     self.progressBtn = [UIButton buttonWithType:UIButtonTypeSystem];
134     self.progressBtn.frame = CGRectMake(22, 390, 100, 50);
135     [self.progressBtn setTitle:@"下载图片" forState:UIControlStateNormal];
136     [self.progressBtn setBackgroundColor:[UIColor redColor]];
137     [self.progressBtn.titleLabel setFont:[UIFont systemFontOfSize:20]];
138     [self.progressBtn addTarget:self action:@selector(downloadImage) forControlEvents:UIControlEventTouchUpInside];
139     [self.view addSubview:self.progressBtn];
140     
141     // 进度条
142     self.progress= [[UIProgressView alloc] initWithFrame:CGRectMake(150, 415, 200 , 2)];
143     self.progress.progressViewStyle = UIProgressViewStyleDefault;
144     // 进度条默认最小0,最大1
145     self.progress.progress = 0;
146     [self.view addSubview:self.progress];
147     
148     // 等待指示器
149     self.progressIndicate = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
150     self.progressIndicate.frame = CGRectMake(169, 185, 37, 37);
151     [self.view addSubview:self.progressIndicate];
152     
153 }
154 #pragma mark - 下载关联方法
155 -(void) downloadImage
156 {
157     self.progress.progress = 0;
158     self.progressView.hidden = YES;
159     [self.progressIndicate startAnimating];
160     self.timer = [NSTimer timerWithTimeInterval:0.2 target:self selector:@selector(progressAdd) userInfo:nil repeats:YES];
161     [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
162     
163 }
164 #pragma mark - 进度条关联方法
165 -(void)progressAdd
166 {
167     // 进度条没走到1
168     if (self.progress.progress < 1)
169         self.progress.progress +=0.1;
170     // 进度条走到1
171     else
172     {
173         self.progressView.hidden = NO;
174         [self.progressIndicate stopAnimating];
175         [self.timer invalidate];
176     }
177 }
178 
179 #pragma mark - 滑动条
180 -(void) createSlider
181 {
182     //透明度标签
183     UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(32, 502, 102, 21)];
184     lable.text = @"改变透明度";
185     [self.view addSubview:lable];
186     // 滑动条
187     
188     self.slider = [[UISlider alloc] initWithFrame:CGRectMake(201, 502, 154, 31)];
189     self.slider.minimumValue = 0;
190     self.slider.maximumValue = 1;
191     self.slider.value = 1;
192     [self.slider addTarget:self action:@selector(sliderValueChange) forControlEvents:UIControlEventValueChanged];
193     [self.view addSubview:self.slider];
194     
195     
196     
197 }
198 #pragma mark - 滑动条关联方法
199 - (void)sliderValueChange
200 {
201     self.view.alpha = self.slider.value;
202 }
203 
204 #pragma mark - 文本框
205 - (void)createTextField
206 {
207     UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(32, 582, 85, 21)];
208     lable.text = @"文本输入:";
209     [self.view addSubview:lable];
210     // 文本框
211     self.textField = [[UITextField alloc] initWithFrame:CGRectMake(203, 579, 156, 30)];
212     self.textField.delegate = self;
213     self.textField.borderStyle = UITextBorderStyleRoundedRect;
214     [self.view addSubview:self.textField];
215     
216 }
217 
218 - (BOOL)textFieldShouldReturn:(UITextField *)textField
219 {
220     // 响应者链(自己玩玩看)
221     
222     // 取消文本框第一响应者
223     [self.textField resignFirstResponder];
224     
225     // 收回键盘
226     return YES;
227 }
228 
229 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
230 {
231     //上下文动画内,改变当前视图坐标
232     [UIView beginAnimations:@"text" context:nil];
233     [UIView setAnimationDuration:0.3];
234     
235     CGRect rect = self.view.frame;
236     rect.origin.y = -210;
237     self.view.frame = rect;
238     
239     [UIView commitAnimations];
240     return YES;
241 }
242 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField
243 {
244     //上下文动画内,改变当前视图坐标
245     [UIView beginAnimations:@"text" context:nil];
246     [UIView setAnimationDuration:0.3];
247     
248     CGRect rect = self.view.frame;
249     rect.origin.y = 0;
250     self.view.frame = rect;
251     
252     [UIView commitAnimations];
253     return YES;
254 
255     
256     
257 }
258 
259 
260 - (void)viewDidLoad {
261     [super viewDidLoad];
262     
263     [self.view setBackgroundColor:[UIColor grayColor]];
264     
265     // 标题
266     [self createTitleLeblel];
267     // 分段控制器
268     [self createSegmentControl];
269     // 开关
270     [self createSwitch];
271     // 下载
272     [self createDownLoad];
273     // 滑动条
274     [self createSlider];
275     // 文本框
276     [self createTextField];
277     
278 
279 }

 

转载于:https://www.cnblogs.com/oc-bowen/p/5076726.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天龙八部***核心代码

天龙八部***核心代码 信息来源&#xff1a;邪恶八进制信息安全团队&#xff08;www.eviloctal.com&#xff09; 文章作者&#xff1a;认真的雪 我也来凑凑热闹..... 发一个网游***核心代码...无聊的时候写的.. 截取了用户名&#xff0c;密码&#xff0c;等级&#xff0c;仓库密…

Linux常用错误码--errno-base.h

经常会需要用到错误码&#xff0c;但是它具体的值 是什么呢&#xff0c;往往不太清楚&#xff0c;所以在使用的时候非常不舒服&#xff0c;下面把linux平台下常用的错误码列了下。 我是Fedora12系统&#xff0c;找到的定义文件是&#xff1a;/usr/include/asm-generic/errno-b…

[react] react组件的state和props两者有什么区别?

[react] react组件的state和props两者有什么区别&#xff1f; State 是一种数据结构&#xff0c;用于组件挂载时所需数据的默认值。State 可能会随着时间的推移而发生突变&#xff0c;但多数时候是作为用户事件行为的结果。 Props(properties 的简写)则是组件的配置。props 由…

[react] react与angular、vue有什么区别?

[react] react与angular、vue有什么区别&#xff1f; Angular以前有接触过&#xff0c;我的感觉是&#xff0c;这不像React和Vue一样是构架补充库&#xff08;比如需要另外的全家桶来配合使用&#xff09;&#xff0c;它的功能非常完整&#xff0c;更像是一个框架&#xff0c;…

Linux互斥锁的使用代码实现

From: http://blog.csdn.net/leo115/article/details/8037869 [cpp] view plaincopy#include <stdio.h> #include <pthread.h> #include <sched.h> #include <unistd.h> //对临界区的保护问题 void *fun1(void *arg); void *fun2(void *ar…

南京Uber优步司机奖励政策(12月28日到1月3日)

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

[react] 说说你对声明式编程的理解?

[react] 说说你对声明式编程的理解&#xff1f; 声明式编程 区别于命令式编程,它的特点就是我告诉计算机做什么,但是没有告诉你怎么做. 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌…

有谁用过sendinput摸拟一个鼠标击键?

我想用&#xff0c;但定义了MOUSEINPUT和INPUT结构&#xff0c;编译是时出现这个错误&#xff1a; E:\My document\VCprograms\13\13.cpp(152) : error C2065: MOUSEINPUT : undeclared identifier E:\My document\VCprograms\13\13.cpp(152) : error C2065: INPUT : undeclare…

USB Camera摄像头(UVC 与 gspca)

From: http://www.cnblogs.com/leaven/archive/2010/08/19/1802934.html http://weijb0606.blog.163.com/blog/static/131286274201063145356429/ 我的摄像头终于出现图像了&#xff01; 李迟按&#xff1a;本文章不是教程&#xff0c;不是心得总结&#xff0c;而是记录我在…

[react] react有几种构建组件的方式?可以写出来吗?

[react] react有几种构建组件的方式&#xff1f;可以写出来吗&#xff1f; 1.无状态函数式组件 function HelloComponent(props, /* context */) { return <div>Hello {props.name}</div> } ReactDOM.render(<HelloComponent name"Sebastian" /&g…

随机存取存储器(RAM)

RAM&#xff08;random access memory&#xff09;随机存储器。存储单元的内容可按需随意取出或存入&#xff0c;且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容&#xff0c;故主要用于存储短时间使用的程序。 按照存储信息的不同&#xff0c;…

JAVA基础实例(三)--排序

冒泡排序 是一种简单的排序算法。它反复地走訪过要排序的数列&#xff0c;一次比較两个元素。假设他们的顺序错误就把他们交换过来。走訪数列的工作是反复地进行直到没有再须要交换&#xff0c;也就是说该数列已经排序完毕。这个算法的名字由来是由于越小的元素会经由交换慢慢“…

对象文件格式分析工具: objdump, nm,ar

From: http://blog.csdn.net/longxin007/article/details/1880477 前言 如果普通编程不需要了解这些东西&#xff0c;如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断&#xff0c;刚你可以看一下下面的工具&#xff1a;objdump, nm, ar。…

[react] react的mixins有什么作用?适用于什么场景?

[react] react的mixins有什么作用&#xff1f;适用于什么场景&#xff1f; 1.mixin的作用是抽离公共功能&#xff0c;不存在渲染dom的需要&#xff0c;所以它没有render方法。如果你定义了render方法&#xff0c;那么他会和组件的render方法冲突而报错。 2.mixin不应该污染st…

分布式领域CAP理论

分布式领域CAP理论具体如下&#xff1a;Consistency(一致性)&#xff1a;数据一致更新&#xff0c;所有数据变动都是同步的&#xff1b;Availability(可用性)&#xff1a;好的响应性能&#xff1b;Partition tolerance(分区容错性)&#xff1a;可靠性&#xff1b; 定理&#xf…

一份详尽的IPC$入侵资料

创建时间&#xff1a;2003-03-16文章属性&#xff1a;原创文章来源&#xff1a;菜菜鸟社区http://ccbirds.yeah.net文章提交&#xff1a;iqst(papabang_at_qingdaonews.com)[ccbirds入门级教程]--各个击破1--ipc$入侵一 唠叨一下&#xff1a;网上关于ipc$入侵的文章可谓多如牛毛…

CString转char的方法总结

From: http://www.lewensky.cn/read.php/133.htm 1.传给未分配内存的const char* &#xff08;LPCTSTR&#xff09;指针. CString cstr(asdd);const char* ch (LPCTSTR)cstr;ch指向的地址和cstr相同。但由于使用const保证ch不会修改&#xff0c;所以安全.2.传给未分配内…

[react-router] 请你说说react的路由是什么?

[react-router] 请你说说react的路由是什么&#xff1f; React的路由是纯前端的路由&#xff0c;就是根据hash或browser path的变化&#xff0c;框架内封装好了方法&#xff0c;可以自由的切换DOM展示&#xff0c;来模拟页面或局部页面被替换的目的&#xff1b;让浏览器不用刷…

使用Delphi7构建工商银行电子口令密码查找助手

工商银行通过网银结账的时候&#xff0c;会给出一个类似于B5G7的字符串&#xff0c;让你在自己的口令卡上找到对应的口令码。因为口令卡上的数字挺多的&#xff0c;而且有水印&#xff0c;找起来挺麻烦的&#xff0c;我就花了几十分钟的时间&#xff0c;写了一个快速查找口令卡…

[react-router] 请你说说react的路由的优缺点?

[react-router] 请你说说react的路由的优缺点&#xff1f; 优点&#xff1a; 配置灵活支持丰富的传参利用hashRouter也可以实现低版本浏览器的兼容 缺点&#xff1a; v4之后使用url query的方式传参比较繁琐&#xff0c;解析时需要使用queryString和location.search利用reac…