iOS UI-常用控件
#import "ViewController.h" @interface ViewController ()<UITextFieldDelegate> // 标题标签
@property (strong, nonatomic) UILabel *titleLablel;
// 分段控制器
@property (strong,nonatomic) UISegmentedControl *segment;
// 开关标签
@property (strong,nonatomic) UILabel *switchLable;
// 开关
@property (strong,nonatomic) UISwitch *swtch;
// 图片
@property (strong,nonatomic) UIImageView *progressView;
// 等待指示器
@property (strong, nonatomic) UIActivityIndicatorView *progressIndicate;
// 下载按钮
@property (strong,nonatomic) UIButton *progressBtn;
// 进度条
@property (strong,nonatomic) UIProgressView *progress;
// 定时器
@property (strong,nonatomic) NSTimer *timer;
// 滑动条
@property (strong,nonatomic) UISlider *slider;
// 文本框
@property (strong,nonatomic) UITextField *textField; @end @implementation ViewController #pragma mark - 标题标签
- (void)createTitleLeblel
{
self.titleLablel = [[UILabel alloc] init];
self.titleLablel.frame = CGRectMake(, , , );
self.titleLablel.font = [UIFont systemFontOfSize:];
self.titleLablel.textAlignment = NSTextAlignmentCenter;
self.titleLablel.text = @"控件大全";
[self.view addSubview: self.titleLablel]; } #pragma mark - 分段控制器
- (void) createSegmentControl
{
NSArray *array = @[@"first",@"second",@"third",@"fourth",@"defult"];
self.segment =[[UISegmentedControl alloc] initWithItems:array];
self.segment.frame = CGRectMake(, , , ); [self.segment addTarget:self action:@selector(segmentValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:self.segment];
} #pragma mark - 分段器关联方法
-(void)segmentValueChanged:(id)sender
{
UISegmentedControl *tempSegment = (UISegmentedControl*) sender;
switch (tempSegment.selectedSegmentIndex) {
case :
self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
break;
case :
self.view.backgroundColor= [UIColor orangeColor];
break;
case :
self.view.backgroundColor = [UIColor yellowColor];
break;
case :
self.view.backgroundColor = [UIColor greenColor];
break;
case :
self.view.backgroundColor = [UIColor lightGrayColor];
break; default:
break;
} } #pragma mark - 开关
- (void) createSwitch
{
self.switchLable = [[UILabel alloc] initWithFrame:CGRectMake(, , , )]; self.switchLable.text = @"开启";
[self.view addSubview:self.switchLable]; self.swtch = [[UISwitch alloc] initWithFrame:CGRectMake(, , , )]; [self.swtch addTarget:self action:@selector(switchIsOnOrOff) forControlEvents:UIControlEventValueChanged]; [self.swtch setOn:YES]; [self.view addSubview:self.swtch]; }
#pragma mark - 开关关联方法
- (void)switchIsOnOrOff
{
if (self.swtch.isOn) {
// NSLog(@"开关打开");
self.titleLablel.hidden = NO;
self.progressBtn.hidden = NO;
self.progress.hidden = NO;
self.slider.hidden = NO;
self.textField.hidden = NO; }
else{
// NSLog(@"开关关闭");
self.titleLablel.hidden = YES;
self.progressBtn.hidden = YES;
self.progress.hidden = YES;
self.slider.hidden = YES;
self.textField.hidden = YES;
} } #pragma mark - 下载
-(void) createDownLoad
{
//创建图片
self.progressView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
self.progressView.image = [UIImage imageNamed:@"touxiang.jpg"];
self.progressView.hidden =YES;
[self.view addSubview:self.progressView]; // 下载按钮
self.progressBtn = [UIButton buttonWithType:UIButtonTypeSystem];
self.progressBtn.frame = CGRectMake(, , , );
[self.progressBtn setTitle:@"下载图片" forState:UIControlStateNormal];
[self.progressBtn setBackgroundColor:[UIColor redColor]];
[self.progressBtn.titleLabel setFont:[UIFont systemFontOfSize:]];
[self.progressBtn addTarget:self action:@selector(downloadImage) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.progressBtn]; // 进度条
self.progress= [[UIProgressView alloc] initWithFrame:CGRectMake(, , , )];
self.progress.progressViewStyle = UIProgressViewStyleDefault;
// 进度条默认最小0,最大1
self.progress.progress = ;
[self.view addSubview:self.progress]; // 等待指示器
self.progressIndicate = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.progressIndicate.frame = CGRectMake(, , , );
[self.view addSubview:self.progressIndicate]; }
#pragma mark - 下载关联方法
-(void) downloadImage
{
self.progress.progress = ;
self.progressView.hidden = YES;
[self.progressIndicate startAnimating];
self.timer = [NSTimer timerWithTimeInterval:0.2 target:self selector:@selector(progressAdd) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; }
#pragma mark - 进度条关联方法
-(void)progressAdd
{
// 进度条没走到1
if (self.progress.progress < )
self.progress.progress +=0.1;
// 进度条走到1
else
{
self.progressView.hidden = NO;
[self.progressIndicate stopAnimating];
[self.timer invalidate];
}
} #pragma mark - 滑动条
-(void) createSlider
{
//透明度标签
UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];
lable.text = @"改变透明度";
[self.view addSubview:lable];
// 滑动条 self.slider = [[UISlider alloc] initWithFrame:CGRectMake(, , , )];
self.slider.minimumValue = ;
self.slider.maximumValue = ;
self.slider.value = ;
[self.slider addTarget:self action:@selector(sliderValueChange) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:self.slider]; }
#pragma mark - 滑动条关联方法
- (void)sliderValueChange
{
self.view.alpha = self.slider.value;
} #pragma mark - 文本框
- (void)createTextField
{
UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];
lable.text = @"文本输入:";
[self.view addSubview:lable];
// 文本框
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(, , , )];
self.textField.delegate = self;
self.textField.borderStyle = UITextBorderStyleRoundedRect;
[self.view addSubview:self.textField]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField
{
// 响应者链(自己玩玩看) // 取消文本框第一响应者
[self.textField resignFirstResponder]; // 收回键盘
return YES;
} - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
//上下文动画内,改变当前视图坐标
[UIView beginAnimations:@"text" context:nil];
[UIView setAnimationDuration:0.3]; CGRect rect = self.view.frame;
rect.origin.y = -;
self.view.frame = rect; [UIView commitAnimations];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
//上下文动画内,改变当前视图坐标
[UIView beginAnimations:@"text" context:nil];
[UIView setAnimationDuration:0.3]; CGRect rect = self.view.frame;
rect.origin.y = ;
self.view.frame = rect; [UIView commitAnimations];
return YES; } - (void)viewDidLoad {
[super viewDidLoad]; [self.view setBackgroundColor:[UIColor grayColor]]; // 标题
[self createTitleLeblel];
// 分段控制器
[self createSegmentControl];
// 开关
[self createSwitch];
// 下载
[self createDownLoad];
// 滑动条
[self createSlider];
// 文本框
[self createTextField]; }
iOS UI-常用控件的更多相关文章
- UI常用控件
UICommonlyUsedControls [UI常用控件] 不需要学习多么深入,但是要知道系统提供的有用的控件. 一.UISwitch(开关) 二.UIActivityIndicatorView( ...
- UI常用控件的一些属性
UILable 1 //设置文本信息 2 nameLable.text = @"用户名:"; 3 //对齐方式(居中 居左 局右); 4 nameLable.textAlignme ...
- easy ui 常用控件配置
table comboBox 下拉高度 panelHeight:'auto' textBox
- Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例
看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...
- [WinForm]WinForm跨线程UI操作常用控件类大全
前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...
- 【Android Studio】安卓开发初体验3.1——UI设计之常用控件
常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...
- Day3 UI:7种常用控件、4种基本布局
Android常用控件 TextView <TextView android:id="@+id/text_view" android:layout_width="m ...
- UWP学习记录7-设计和UI之控件和模式4
UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...
- B/S一些小知识及常用控件
一: B/S网页的运行 页面在设计的时候,本身就是一个类.在运行的时间,是一个对象. 其中aspx和aspx.cs是在同一个类下. aspx是主要是负责界面,而aspx.cs主要是负责数据逻辑. 呈现 ...
- QMUI UI库 控件 弹窗 列表 工具类 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
随机推荐
- CF#235E. Number Challenge
传送门 可以理解为上一道题的扩展板.. 然后我们就可以YY出这样一个式子 ${\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^cd(ijk)=\sum_{i=1}^a\sum_{ ...
- python字符串、列表和文件对象总结
1.字符串是字符序列.字符串文字可以用单引号或者双引号分隔. 2.可以用内置的序列操作来处理字符串和列表:连接(+).重复(*).索引([]),切片([:])和长度(len()).可以用for循环遍历 ...
- 从bios启动说起
如果从bios启动说起的话,BIOS去加载bootloader,bootloader去加载操作系统,那么bootloader是怎么找到操作系统的呢?经过一些流程后,它会去找grub:然后通过grub提 ...
- luogu P2680 运输计划 65分做法
临近\(noip,AK\)不太现实,暴力才是王道,大佬无视 这里只介绍\(65\)分做法 ① \(m==1\) 的情况 很明显 就一条路径,当然要贪心选着一条路径路上的最大的边喽 傻逼分\(get 2 ...
- IntelliJ-IDEA和Git、GitHub、Gitlab的使用
一.基本入门 1.IntelliJ-IDEA预装的版本控制介绍 我们来看IntelliJ-IDEA的版本控制设置区域 打开File>Settings>Version Control 可以 ...
- 【附2】hystrix详述(2)- 配置
一.hystrix在生产中的建议 1.保持timeout的默认值(1000ms),除非需要修改(其实通常会修改) 2.保持threadpool的的线程数为10个,除非需要更多 3.依赖标准的报警和监控 ...
- 【第十一章】 springboot + mongodb(简单查询)
1.mongodb在mac上的安装 下载mongodb,https://www.mongodb.org/ 解压缩到一个指定文件夹,如:/Users/enniu1/Desktop/zjg/mongodb ...
- AtCoder 杂题训练
前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- java对象在内存的大小
前言 一直以来,对java对象大小的概念停留在基础数据类型,比如byte占1字节,int占4字节,long占8字节等,但是一个对象包含的内存空间肯定不只有这些. 假设有类A和B,当new A()或者n ...