#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-常用控件的更多相关文章

  1. UI常用控件

    UICommonlyUsedControls [UI常用控件] 不需要学习多么深入,但是要知道系统提供的有用的控件. 一.UISwitch(开关) 二.UIActivityIndicatorView( ...

  2. UI常用控件的一些属性

    UILable 1 //设置文本信息 2 nameLable.text = @"用户名:"; 3 //对齐方式(居中 居左 局右); 4 nameLable.textAlignme ...

  3. easy ui 常用控件配置

    table comboBox 下拉高度 panelHeight:'auto' textBox

  4. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  5. [WinForm]WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...

  6. 【Android Studio】安卓开发初体验3.1——UI设计之常用控件

    常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...

  7. Day3 UI:7种常用控件、4种基本布局

    Android常用控件 TextView <TextView android:id="@+id/text_view" android:layout_width="m ...

  8. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

  9. B/S一些小知识及常用控件

    一: B/S网页的运行 页面在设计的时候,本身就是一个类.在运行的时间,是一个对象. 其中aspx和aspx.cs是在同一个类下. aspx是主要是负责界面,而aspx.cs主要是负责数据逻辑. 呈现 ...

  10. QMUI UI库 控件 弹窗 列表 工具类 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

随机推荐

  1. Python Web学习笔记之并发和并行的区别和实现

    你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行.你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发.你吃饭吃到一半,电话来了,你一边打 ...

  2. 深入JAVA注解之方法注解

    以获取数据库连接为例,建立maven项目 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...

  3. 根据wsdl文件,Java工程自动生成webservice客户端调用

    根据wsdl文件,Java工程自动生成webservice客户端调用 1,工具:带有webservice插件的myeclips 2,步骤: (1),新建一个Java工程:relationship (2 ...

  4. 使用wireshark分析tcp/ip报文之报文头

    以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B. IP头部: TCP头部: http:// ...

  5. 串口WIF简单I调试

    串口WIF简单I调试 /*********************************************************************** Title:Wifi串口调试 H ...

  6. #if 1...#endif

    1. “#if 0/#if 1 ... #endif”的作用,我们知道,C标准不提供C++里的“//”这样的单行风格注释而只提供“/* */”这样的块注释功能,我们通常使用它写代码中说明性的注释文字( ...

  7. VS中 Winform查看窗体内控件之间的相互关系

    视图----其他窗口----文档大纲 这样可以查看之前的窗体布局关系

  8. thymeleaf和easyui配合可能出现的错误

    thymeleaf和easyui 在easyui的内页,不再使用th:href引入静态资源文件. 在easyui页面中,script执行easyui自己的方法要加入: <script th:in ...

  9. Java自学入门新的体会0.2

    Java 基本数据类型 变量就是申请内存来存储值,也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来存储该类型数据. 因此,通过定义不 ...

  10. 如何解决Visual Studio2010 编译时提示系统找不到指定文件问题

    前一段时间,开始使用vs2010编写程序,可是在编译的时候总是报错,提示系统找不到指定文件,导致无法正常运行程序,花了好久时间终于找到原因解决,是因为常规的输出目录 要与链接的常规的输出文件要相对应. ...