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 ...
随机推荐
- Python Web学习笔记之GIL机制下的鸡肋多线程
为什么有人会说 Python 多线程是鸡肋?知乎上有人提出这样一个问题,在我们常识中,多进程.多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎么在 Python 中反而成了鸡肋? 有同学 ...
- python文件操作-r、w、a、r+、w+、a+和b模式
对文件操作的基本步骤 f=open('a.txt','r',encoding='utf-8') data=f.read() print(data) f.close() 文件的打开和关闭使用open() ...
- 04: Mysql性能优化
MySQL其他篇 目录: 参考网站 1.1 Mysql数据库的优化技术 1.2 数据库表设计 1.3 SQL优化 1.为查询缓存优化你的查询 2.EXPLAIN 你的 SELECT 查询 3. 当只要 ...
- JAVA I/O(六)多路复用IO
在前边介绍Socket和ServerSocket连接交互的过程中,读写都是阻塞的.套接字写数据时,数据先写入操作系统的缓存中,形成TCP或UDP的负载,作为套接字传输到目标端,当缓存大小不足时,线程会 ...
- 使用qmlscene预览qml文件
功能:可以预览qml文件的界面 使用:qmlscene myapp.qml
- keil5配置stm32库函数开发
在将模板文件添加到工程中后, 1.点击魔术棒,选择C/C++,添加头文件的路径: 2.C/C++里面的define内填入:STM32F10X_MD,USE_STDPERIPH_DRIVER: 3.Ou ...
- Hadoop新增和删除节点
#新增节点 1.安装lunix,和以前一样的版本 2.初始化系统环境 2.1.设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 //增加 #Adv ...
- 加法变乘法|2015年蓝桥杯B组题解析第六题-fishers
加法变乘法 我们都知道:1+2+3+ ... + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如: 1+2+3+...+1011+12+...+2728+29+ ...
- Pairs Forming LCM (LCM+ 唯一分解定理)题解
Pairs Forming LCM Find the result of the following code: ; i <= n; i++ ) for( int j = i; j ...
- [SpringBoot] - 一份笔记
一. Spring Boot 入门 1. Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2. 微服务 201 ...