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

iOS UI-常用控件相关推荐

  1. 【Qt教程】2.1 - Qt5 UI设计器、常用控件

    1. UI设计器使用 新建工程,将 .ui文件勾上. 双击 .ui文件,会弹出UI设计器,其布局大概为: 其中UI界面的信号槽只能使用系统事件,不能使用自定义信号与槽.所以主要还是由用户代码来完成. ...

  2. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

  3. 精通iOS移动开发(Xcode7Swift2;):常用控件的使用-李发展-专题视频课程

    精通iOS移动开发(Xcode7&Swift2;):常用控件的使用-15794人已学习 课程介绍         应用程序的每个页面,都是由各种控件组成的.所以灵活掌握每个控件的使用方法,是每 ...

  4. iPhone像素点和常用控件尺寸

    iPhone像素点和常用控件尺寸 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/8565872 1.    iPhone ...

  5. Flutter 常用控件使用详解

    目录 配置 Flutter常用控件 Text TextField组件 Container Image GridView Row水平组件 Column垂直布局 Stack层叠布局 参考 配置 由于Flu ...

  6. iOS自定义View 控件自动计算size能力

    iOS自定义View 控件自动计算size能力 背景 在使用 UILabel 和 UIImage 的时候,不用指定宽高约束,控件也不会报约束缺失,还可以根据内容自己确定适合的宽高,特别适合 Xib 和 ...

  7. 设计器的使用及常用控件

    设计器的使用及常用控件 文章目录 设计器的使用及常用控件 一.设计器 二.设计器中的常用控件 一.设计器 1.设计器的使用 2.通过代码操作ui文件 #include "mainwindow ...

  8. Android中列表框纵向布局,andriod布局常用控件属性..docx

    andriod布局常用控件属性. android:gravity="center_vertical" ?限定它里面的内容要垂直居中显示.?android:layout_gravit ...

  9. elementui树状菜单tree_Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)...

    这篇博客主要介绍树形控件的两个小小的功能: 下拉菜单 输入过滤框 以CSS样式为主,也会涉及到Vue组件和element组件的使用. 对于没有层级的数据,我们可以使用表格或卡片来展示.要展示或建立层级 ...

  10. Windows Phone7屏幕方向与常用控件

    跟林永坚老师学习wp7 屏幕方向(Orientation) 常用控件(Canvas,Grid,StackPanel,TextBlock,Image,MediaElement) 屏幕方向感应页面(Por ...

最新文章

  1. Learn OpenGL (十二):投光物
  2. 【自然语言处理】正向、逆向、双向最长匹配算法的 切分效果与速度测评
  3. 机器学习里如何确定K-Means算法的K值?
  4. 内核添加dts后,device和device_driver的match匹配的变动:通过compatible属性进行匹配【转】...
  5. delphi 属性编辑器
  6. logback的使用和logback.xml详解
  7. java面向对象内存分析
  8. C语言栈的面试题,[面试题]EMC易安信-C语言函数堆栈的思考
  9. mysql8 create table 语法错误_MySQL8.0 Window Function 剖析
  10. 射频微波芯片设计4:耦合器芯片
  11. 用几行代码恶搞别人的电脑
  12. 使用C语言生成DAC的Sin正弦波数据表(一个周期采样32个)
  13. 中国企业管理水平啥时候才能成熟啊
  14. Android 微信支付总结
  15. 对比极米Z6X Pro和RS Pro 2,极米H5值得入手吗?极米H5评测来了
  16. 2021-12-15 股票模拟交易心得10
  17. ThinkPHP实现定时执行任务的两种方法
  18. 头牌知产介绍空气炸锅商标转让类别
  19. Axure中的登陆界面和动画轮播
  20. NPDP知识推送-第七章产品生周期管理(4)

热门文章

  1. testbench常用任务之SPI slave输出数据
  2. JS 数组 各项操作
  3. C语言栈实现逆波兰算法
  4. cannot find output in imported module librosa报错解决
  5. python random随机数 RUNOOB python练习题50
  6. (原創) 如何使用C++/CLI读/写jpg檔? (.NET) (C++/CLI) (GDI+) (C/C++) (Image Processing)
  7. 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 screen工具
  8. Git 仓库代码迁移步骤记录
  9. CentOS6.7上使用FPM打包制作自己的rpm包
  10. Alictf 2015决赛题目设计和解题思路