//

//  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. DataStage系列教程 (Change Capture)

    Change Capture可以比较具有相同列的数据集的差异,得出一个数据集(After)在另一个数据库(Before)的基础上产生的哪些变化.变化类型如表1: 变化代码 变化 中文说明 0 no c ...

  2. 好的Mysql 查询语句

    select swr.id,swr.name,swr.sort as type,count(swl.id) as nums,ifnull(sum(swl.package_num),0) package ...

  3. iOS 可变字符串NSMutableString的使用

    .创建一个可变字符串 NSMutableString * ms1 = [[NSMutableString alloc]init]; .可以通过类方法来创建 NSMutableString * ms2 ...

  4. css中pt、px、em、ex、in等这类长度单位详细说明

    在CSS样式表中,我们经常会看到pt, px,em,ex,in等这类长度单位.它们各是什么意思,有什么区别呢? 在CSS样式表中,长度单位分两种: 相对长度单位,如px, em等 绝对长度单位,如pt ...

  5. CSS之position体验

    目录: 1. position介绍 2. relative 3. position 4. fixed与static 5. 总结 1. position介绍 position最简单的理解就是元素位置的定 ...

  6. 【程序员笔试面试必会——排序②】Python实现 计数排序、基数排序

    一.计数排序 概要: 时间复杂度O(n),空间复杂度O(k),k是输入序列的值的范围(最大值-最小值),是稳定的.计数排序一般用于已知输入值的范围相对较小,比如给公司员工的身高体重信息排序. 思路: ...

  7. Selenium入门练习(二)

    自动登录博客园并且退出登录 package TestNG; import org.testng.annotations.Test;import org.testng.annotations.Befor ...

  8. 2-2-sshd服务安装管理及配置文件理解和安全调优

    大纲: 1. 培养独自解决问题的能力 2. 学习第二阶段Linux服务管理的方法 3. 安装sshd服务 4. sshd服务的使用 5. sshd服务调优 6. 初步介绍sshd配置文件 ###### ...

  9. fwrite的文件缓冲同步到磁盘

    这是个小细节. 用fwrite写文件的时候,我发现刷新文件夹,对应文件大小一直是0. 网上有一篇博客写得比较完善http://blog.csdn.net/sctq8888/article/detail ...

  10. HDU-4705-树形dp/组合数学

    Y Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submiss ...