//

//  ViewController.m

//  UI_Lesson3

//

//  Created by archerzz on 15/8/13.

//  Copyright (c) 2015年 archerzz. All rights reserved.

//

#import "ViewController.h"

@interface ViewController () <UIAlertViewDelegate>

// 活动指示器

@property (nonatomic, strong) UIActivityIndicatorView *indicatorView;

- (void)initUserInterface;

- (void)handleEvent:(id)sender;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

[self initUserInterface];

}

- (void)initUserInterface {

NSLog(@"%@", [NSBundle mainBundle]);

self.view.backgroundColor = [UIColor brownColor];

#pragma mark - UIImageView 图片视图

// 1. 创建图片

UIImage *image = [UIImage imageNamed:@"1"];

// 2. 创建图片视图

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

// 3. 设置属性

// 3.1 设置大小

imageView.bounds = CGRectMake(0, 0, 50, 50);

// 3.2 设置中心点

imageView.center = CGPointMake(CGRectGetMidX(self.view.bounds), 60);

// 3.3 设置缩放方式

imageView.contentMode = UIViewContentModeScaleAspectFill;

// 3.4 设置圆角

imageView.layer.cornerRadius = 25;// 宽高的一半成为圆形

// 3.5 裁剪

imageView.clipsToBounds = YES;

// 3.6 imageView默认情况用户交互是关闭的

imageView.userInteractionEnabled = YES;

// 4. 添加到父视图

[self.view addSubview:imageView];

#pragma mark - UILabel 文本自适应

UILabel *label = ({

UILabel *label = [[UILabel alloc] init];

// 1.1 设置文本

label.text = @"啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊";

// 1.2 设置字体

label.font = [UIFont systemFontOfSize:14];

// 1.3 设置位置大小

label.frame = CGRectMake(0, 60, 150, 0);

// 1.4 设置行数

label.numberOfLines = 0; // 无穷

// 1.5 设置换行模式

label.lineBreakMode = NSLineBreakByCharWrapping;

// 1.6 自适应

[label sizeToFit];

label;

});

// 添加到父视图

[self.view addSubview:label];

#pragma mark - UISegmentedControl 分段控件

// 1. 初始化

UISegmentedControl *segControl = [[UISegmentedControl alloc] initWithItems:@[@"红色", @"紫色"]];

// 2.1 设置中心点

segControl.center = CGPointMake(260, 100);

// 2.2 设置主色调

segControl.tintColor = [UIColor redColor];

// 2.3 添加事件 UIControlEventValueChanged

[segControl addTarget:self

action:@selector(handleEvent:)

forControlEvents:UIControlEventValueChanged];

// 3. 添加到父视图

[self.view addSubview:segControl];

#pragma mark - UISwitch 开关

// 1. 初始化

UISwitch *switchControl = [[UISwitch alloc] init];

// 2.1 设置中心点

switchControl.center = CGPointMake(260, 160);

// 2.2 设置主色调

switchControl.tintColor = [UIColor redColor];

// 2.3 设置开启后的色调

switchControl.onTintColor = [UIColor grayColor];

// 2.4 设置按钮颜色

switchControl.thumbTintColor = [UIColor orangeColor];

// 2.5 添加事件

[switchControl addTarget:self

action:@selector(handleEvent:)

forControlEvents:UIControlEventValueChanged];

// 3. 添加到父视图

[self.view addSubview:switchControl];

#pragma mark - UISlider 滑条

// 1. 初始化

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 300, 375, 30)];

// 2. 设置属性

// 2.1 设置主色调

slider.tintColor = [UIColor greenColor];

// 2.2 左侧颜色

slider.minimumTrackTintColor = [UIColor grayColor];

// 2.3 右侧颜色

slider.maximumTrackTintColor = [UIColor redColor];

// 2.4 按钮颜色

slider.thumbTintColor = [UIColor purpleColor];

// 2.5 添加事件

[slider addTarget:self

action:@selector(handleEvent:)

forControlEvents:UIControlEventValueChanged];

// 3. 添加到父视图

[self.view addSubview:slider];

#pragma mark - UIProgressView 进度条

// 1. 初始化

UIProgressView *progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 350, 375, 30)];

// 2. 设置属性

// 3. 添加到父视图

[self.view addSubview:progressView];

#pragma mark - UIActivityIndicatorView 活动指示器

self.indicatorView = ({

// 1. 初始化

UIActivityIndicatorView *indicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

// 2.1 设置中心点

indicatorView.center = self.view.center;

// 2.2 打开隐藏

indicatorView.hidesWhenStopped = NO;

indicatorView;

});

// 3. 添加到父视图

[self.view addSubview:self.indicatorView];

#pragma mark - 延迟调用

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"警告" message:@"请输入用户名或密码" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

[alertView show];

});

#pragma mark - UIActionSheet

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"分享" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"腾讯微博" otherButtonTitles:@"新浪微博", @"人人网", nil];

[actionSheet showInView:self.view];

#pragma mark - UIAlertController 补充

}

- (void)handleEvent:(id)sender {

// 判断sender是否为UISegmentedControl的对象

if ([sender isKindOfClass:[UISegmentedControl class]]) {

// 强转

UISegmentedControl *segControl = (UISegmentedControl *)sender;

NSLog(@"index = %ld", segControl.selectedSegmentIndex);

if (segControl.selectedSegmentIndex == 1) {

self.view.backgroundColor = [UIColor purpleColor];

} else {

self.view.backgroundColor = [UIColor redColor];

}

} else if ([sender isKindOfClass:[UISwitch class]]) {

UISwitch *switchControl = (UISwitch *)sender;

if (switchControl.isOn) {

[self.indicatorView startAnimating];

} else {

[self.indicatorView stopAnimating];

}

} else if ([sender isKindOfClass:[UISlider class]]) {

UISlider *slider = (UISlider *)sender;

self.view.alpha = 1 - slider.value;

}

}

#pragma mark - UIAlertViewDelegate method

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {

if (buttonIndex == 0) {

NSLog(@"取消");

} else if (buttonIndex == 1) {

NSLog(@"确定");

}

}

@end

ios 延迟调用 && UIImageView && UILabel && UISegmentedControl && UISwitch && UISlider的更多相关文章

  1. swift系统学习控件篇:UIbutton+UIlabel+UITextField+UISwitch+UISlider

    工作之余,学习下swift大法.把自己的学习过程分享一下.当中的布局很乱,就表在意这些细节了.直接上代码: UIButton+UILabel // // ViewController.swift // ...

  2. xcode UIImageView创建、图片加载、 音频文件播放、 延迟调用

    代码创建 /** 创建UIImageView */ UIImageView * imageView=[[UIImageView alloc]init]; /** 设置尺寸位置 */ imageView ...

  3. ios开发之--使用UILabel Category 计算UILabel内容大小

    在此仅做记录,代码如下:

  4. UISegmentedControl字体大小,颜色,选中颜色,左边椭圆,右边直线的Button 解决之iOS开发之分段控制器UISegmentedControl

        NSArray *segmentedArray = [NSArrayarrayWithObjects:STR(@"Mynews"),STR(@"Systemmes ...

  5. 【Unity3D】Invoke,InvokeRepeating ,Coroutine 延迟调用,周期性调用

    Invoke和InvokeRepeating方法,可以实现延迟调用,和周期调用 第一个是执行一次,第二个是重复执行 void Invoke(string methodName, float time) ...

  6. 用NodeJs实现延迟调用,规避定时任务的闭包问题

    很多人在用NodeJs的setTimeout(callback, delay[, arg][, ...])编写定时任务时,习惯上直接操作callback外部的对象object(闭包的特点).这样做有一 ...

  7. Unity3d 与IOS 相互调用

    Unity3d 与IOS 相互调用 @灰太龙 群63438968 我用的Unity3d 4.2版本,这一节说一下IOS与U3D的交互! 首先在U3D中写个方法:这个时候导出为ios代码必须是真机,模拟 ...

  8. IOS 多个UIImageView 加载高清大图时内存管理

    IOS 多个UIImageView 加载高清大图时内存管理 时间:2014-08-27 10:47  浏览:59人 当我们在某一个View多个UIImageView,且UIImageView都显示的是 ...

  9. 延迟调用或多次调用第三方的Web API服务

    当我们调用第三方的Web API服务的时候,不一定每次都是成功的.这时候,我们可能会再多尝试几次,也有可能延迟一段时间再去尝试调用服务. Task的静态方法Delay允许我们延迟执行某个Task,此方 ...

随机推荐

  1. pycharm社区版创建django项目(Windows 8.1)

    django是Python的一个开源web框架,在pycharm开发环境中,pycharm专业版在新建一个项目的时候有django选项,帮助创建一个django框架的项目.pycharm社区版需要自己 ...

  2. panda2

    pandas是python为数据分析建造的可靠工具,很多地方和R语言有想通之处.数据分析并不是工具越高深越好,excel,R,python都是针对不同情况的不同工具,各有各的优缺点,就像你要搭一个架子 ...

  3. Linux SSH隧道技术(端口转发,socket代理)

    动态转发(SOCKS5代理): 命令格式:ssh -D <local port> <SSH Server> ssh -fnND 0.0.0.0:20058 172.16.50. ...

  4. 设计模式--命令模式C++实现

    命令模式C++实现 1定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求队列或者记录请求日志,可以提供命令的撤销和恢复功能 2类图 角色描述: Receiver接受者角色,就 ...

  5. 13.LockSupport工具

    1. LockSupport简介 在之前介绍AQS的底层实现,已经在介绍java中的Lock时,比如ReentrantLock,ReentReadWriteLocks,已经在介绍线程间等待/通知机制使 ...

  6. 2-4-搭建DHCP服务实现动态分配IP地址-NTP网络时间同步

    本节所讲内容: •DHCP服务器工作原理 •使用DHCP为局域网中的机器分配IP地址 •使用DHCP为服务器分配固定IP地址 •ntpdate加计划任务同步服务器时间 ---------------- ...

  7. node.js利用express连接mysql数据库

    我们创建一个mysql.js (好像大神们,称呼这叫一个模块,然后暴露一个接口)用来连接数据库 var connction ={}; connction.mysql = { host:"lo ...

  8. 内存保护机制及绕过方法——通过覆盖部分地址绕过ASLR

    ASLR保护机制 ASLR简介 微软在Windows Vista.2008 server.Windows 7.Windows 8等系统的发布中, 开始将ASLR作为内置的系统保护机制运行, 将系统映像 ...

  9. LeetCode OJ:Climbing Stairs(攀爬台阶)

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  10. 配置django上传文件目录的http访问

    1.假设你的html模版文件使用以下路径来访问上传文件内容: url="{{ MEDIA_URL }}{{ images.image }}" 2.设置settings文件: MED ...