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 ...
随机推荐
- 《网络攻防》实验八:Web基础
适逢多事之际,下周二的课设答辩.全国信安竞赛初赛作品筹备.协会密码沙龙比肩接踵,这些"案牍"不仅劳形还影响了我的复习计划."甘蔗没有两头甜的"还是要有所舍得了, ...
- Python3基础 while 阶乘
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 分布式系统一致性算法Raft
Raft 算法也是一种少数服从多数的算法,在任何时候一个服务器可以扮演以下角色之一:Leader:负责 Client 交互 和 log 复制,同一时刻系统中最多存在一个Follower:被动响应请求 ...
- ubuntu 安转redis
一 ,redis 安装配置 在 Ubuntu 系统安装 Redis 可以使用以下命令: sudo apt-get update sudo apt-get install redis-server 这样 ...
- shell:遍历目录和子目录的所有文件及匹配文件内容到日志
过滤文件内网 #!/bin/bash function getdir(){ ` do dir_or_file=$"/"$element if [ -d $dir_or_file ] ...
- mysql-5.7.20-winx64.zip Zip版、解压版MySQL安装
1. zip下载地址: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-winx64.zip 2.官方文档位置: http:// ...
- Select2下拉框总结
用了这么久的Select2插件,也该写篇文章总结总结.当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件. 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下 ...
- UVa 10618 跳舞机
https://vjudge.net/problem/UVA-10618 这道题目题意很复杂,代码也是参考了别人的,因为自己实在是写不出.d[i][a][b][s]表示分析到第i个箭头时,此时左脚处于 ...
- POJ 3628 Bookshelf2(0-1背包)
http://poj.org/problem?id=3628 题意:给出一个高度H和n个牛的高度,要求把牛堆叠起来达到H,求出该高度和H的最小差. 思路:首先我们计算出牛的总高度sum,sum-H就相 ...
- NOI 08 石头剪刀布
石头剪刀布(NOI 08) 总时间限制: 1000ms 内存限制: 65536kB 描述 石头剪刀布是常见的猜拳游戏.石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负. 一天,小A和小B ...