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 ...
随机推荐
- 来了解一下Ajax是什么?Ajax的原理?Ajax与传统Web比较?Ajax的优缺点?Ajax的Post与Get比较
一.什么是Ajax Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助.简单地说,在不需要重新刷新页面的情况下 ...
- 浏览器内核、排版引擎、js引擎
[定义] 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如标准通用标记语 言下的一个应用HT ...
- mysql与oracle常用函数及数据类型对比00持续补充
最近在转一个原来使用oracle,改为mysql的系统,有些常用的oracle函数的mysql实现顺便整理了下,主要是系统中涉及到的(其实原来是专门整理过一个详细doc的,只是每次找word麻烦). ...
- 20145118 《Java程序设计》课程总结
20145118 <Java程序设计>课程总结 每周读书笔记连接汇总 假期笔记 http://www.cnblogs.com/cy1123/p/5224305.html 第一周读书笔记 h ...
- Adobe9阅读器渗透攻击——20145301
Adobe9阅读器渗透攻击 实验步骤: 在kali终端中开启msfconsole,输入命令use exploit/windows/fileformat/adobe_cooltype_sing,进入该漏 ...
- 2019“嘉韦思”杯RSA256题目wp
首先我们从网站下载了一个压缩包,解压出来一看里面有2个文件 首先我们先打开fllllllag康康,结果发现是一串乱码,这时候第一反应就是,文件被加密了,再看fllllllag下面的gy.key文件,更 ...
- git_如何查看两个版本之间那些文件被修改
需求 由于工程比较庞大,接近500M,每部署一次如果都全量部署,不仅仅磁盘空间耗费较大,最主要是要等很长时间, 之前就一直有这个问题,但是也就没有弄,上周领导发话了,这个问题必须要解决了 前记 增加带 ...
- windows下的 gvim - su'blime text 的使用
su'blime [s2'blaim] adj. n. 崇高的, 高尚的, 令人尊敬的; 壮丽的, 宏伟的; 出众的; 崇高的人, 壮丽的事物等等. a sublime mission. a subl ...
- 史丰收速算|2014年蓝桥杯B组题解析第四题-fishers
史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位.不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法. 其中,乘以7是最复杂的,就以它为例. 因为,1/7 是个循 ...
- 一种斐波那契博弈(Fibonacci Nim)
事实上我也不知道这算是哪个类型的博弈 是在复习$NOIP$初赛的时候看到的一个挺有趣的博弈 所以就写出来分享一下 $upd \ on \ 2018.10.12$忽然发现这个其实就是$Fibonacci ...