//

//  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. springMVC多视图的支持

    1.在springmvc.xml中加上 <!-- 多视图的支持 --> <bean class="org.springframework.web.servlet.view. ...

  2. deepin下用命令管理自己的Github仓库

    用命令链接github 初始化 需要用ssh公钥链接到github,注意不能从vim中直接复制 介绍一个命令: xsel < test.txt 将文件中内容直接复制到剪切板中 具体做法 git ...

  3. Hibernate与 MyBatis的比较(转,留作以后细细钻研)

    最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处. 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出 ...

  4. ubuntu16.04 安装power shell

    ubuntu16.04 安装power shell # Download the Microsoft repository GPG keys wget -q https://packages.micr ...

  5. CentOS7用yum安装软件提示 cannot find a valid baseurl for repobase7x86_64 【上网问题】

    方法一.   1.打开 vi /etc/sysconfig/network-scripts/ifcfg-enp4s0(每个机子都可能不一样,但格式会是“ifcfg-e...”).但内容包含: TYPE ...

  6. windows系统下,安装多个版本的jdk,java -version

    问题描述: 开始安装了 jdk8 后来装了jdk9,可以为项目配置不同的jdk,相安无事: 今天发现软件需要jdk8的环境,结果我的java -version始终是jdk9.0.1: 解决办法:使ja ...

  7. React 16.3.0 发布,构建用户界面的 JavaScript 库

    React 16.3.0 已发布,React 是 Facebook 推出的一个为数据提供渲染为 HTML 视图,用来构建用户界面的开源 JavaScript 库. React 视图通常采用包含以自定义 ...

  8. [洛谷P3811]【模板】乘法逆元

    P3811 [模板]乘法逆元 题意 求1-n所有整数在模p意义下的逆元. 分析 逆元 如果x满足\(ax=1(\%p)\)(其中a p是给定的数)那么称\(x\)是在\(%p\)意义下\(a\)的逆元 ...

  9. Dubbo本地开发技巧

    背景 作为后端服务负载.前后分离的主要手段,dubbo在业界中使用率还比较高.随着Dubbo系统的增多,本地开发.调试就出现了麻烦之处 直接在开发本地起同样一份服务 由于Dubbo采用负载均衡的策略, ...

  10. logback配置日志输出

    <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> & ...