//
// RootViewController.m
// Lesson05UIControl
//
// Created by lanouhn on 16/1/6.
// Copyright (c) 2016年 lanouhn. All rights reserved.
//
#import "RootViewController.h"
@interface RootViewController () {
UITextField *textField;
UIImageView *imageView;
UILabel *label;
NSInteger index;
}
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor yellowColor];
/*
//UIControl, 继承于UIView(UIButton, UITextFeild), 内部封装了target-action的设计模式,只要是继承于UIControl的类, 都可以关联方法
UIControl *control = [[UIControl alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
control.backgroundColor = [UIColor cyanColor];
control.center = self.view.center;
[self.view addSubview:control];
[control addTarget:self action:@selector(tap:) forControlEvents:UIControlEventTouchUpInside];
[control release];
*/
//一个视图处理触摸事件
//1.继承于UIView创建子类, 重写touch相关的4个方法
//2.手势
//3.UIControl
//UIControl的子类
//UIButton
//UITextField
//UISlider
//UISegementedControl
//UISwitch
//UIPageControl
//UIStepper
// UISwitch, 开关控件类, 开关的宽和高是固定的, 51*31
/*
UISwitch *switch1 = [[UISwitch alloc] initWithFrame:CGRectMake(50, 40, 0, 0)]; //51*31
//设置初始状态(默认为关)
// switch1.on = YES;
//状态为开的时候渲染色
switch1.onTintColor = [UIColor blueColor];
//状态为关的时候渲染色
switch1.tintColor = [UIColor redColor];
//球的(手指)颜色
switch1.thumbTintColor= [UIColor greenColor];
[switch1 addTarget:self action:@selector(open:) forControlEvents:UIControlEventValueChanged ]; //值发生改变
// switch1.backgroundColor = [UIColor cyanColor];
[self.view addSubview:switch1];
[switch1 release];
textField = [[UITextField alloc] initWithFrame:CGRectMake(150, 40, 150, 31)];
textField.borderStyle = UITextBorderStyleRoundedRect;
[self.view addSubview:textField];
[textField release];
//UISlider, 滑块控件(区间值, 区间模糊值, 模糊的修改)
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(40, 200, 300, 300)];
imageView.image = [UIImage imageNamed:@"1111.jpg"];
[self.view addSubview:imageView];
[imageView release];
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 100, 275, 40)];
//最大值
slider.maximumValue = 2;
//设置最小值
slider.minimumValue = 0.5;
//设置初始值
slider.value = 1;
//未划过的颜色
slider.maximumTrackTintColor = [UIColor whiteColor];
//划过的颜色
slider.minimumTrackTintColor = [UIColor blackColor];
slider.thumbTintColor = [UIColor greenColor];
//滑块的图片
[slider setThumbImage:[UIImage imageNamed:@"QQ"] forState:UIControlStateNormal];
[slider setThumbImage:[UIImage imageNamed:@"QQ"] forState:UIControlStateHighlighted];
//设置左右图片
slider.minimumValueImage = [UIImage imageNamed:@"min"];
slider.maximumValueImage = [UIImage imageNamed:@"max"];
//旋转
//以锚点旋转(默认为中心)
// slider.transform = CGAffineTransformMakeRotation(- M_PI_2);
[slider addTarget:self action:@selector(slider:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];
[slider release];
// UISegmentedControl, 分段控制器, 有多个选项, 并且只能选其中一个
NSArray *items = @[@"辉哥真帅", @"辉哥超帅", @"辉哥真的帅"];//语法糖
UISegmentedControl *segementControl = [[UISegmentedControl alloc] initWithItems:items];
segementControl.frame = CGRectMake(20, 100, 335, 40);
//选中第几个, 下标从0开始
segementControl.selectedSegmentIndex = 0;
[segementControl addTarget:self action:@selector(select:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segementControl];
[segementControl release];
label = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 375, 40)];
label.backgroundColor = [UIColor whiteColor];
label.text = items[0];
[self.view addSubview:label];
[label release];
// UIPageControl, 页码控制器, 一般用于3-4个页面
UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(50, 100, 275, 40)];
//页数
pageControl.tag = 101;
pageControl.numberOfPages = 6;
//未选中点的颜色
pageControl.pageIndicatorTintColor = [UIColor greenColor];
//选中点的颜色
pageControl.currentPageIndicatorTintColor = [UIColor redColor];
pageControl.backgroundColor = [UIColor blackColor];
//初始选中的页数(当前页数)
pageControl.currentPage = 3;
index = 3;
[pageControl addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:pageControl];
[pageControl release];
//计时器
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(run) userInfo:nil repeats:YES];
*/
//UIStepper, 计步器, 区间值, 精确修改
UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 175, 40)];
[stepper addTarget:self action:@selector(step:) forControlEvents:UIControlEventValueChanged];
//最小值
stepper.minimumValue = 10;
//最大值
stepper.maximumValue = 66;
//当前值
stepper.value = 30;
[self.view addSubview:stepper];
[stepper release];
}
- (void)step:(UIStepper *)stepper {
NSLog(@"%.2lf", stepper.value);
}
- (void)run {
UIPageControl *pageControl = (UIPageControl *)[self.view viewWithTag:101];
index++;
if (index == pageControl.numberOfPages) {
index = 0;
}
pageControl.currentPage = index;
}
- (void)change:(UIPageControl *)pageControl {
NSLog(@"%ld", pageControl.currentPage);
}
- (void)select:(UISegmentedControl *)segment {
NSLog(@"%ld", segment.selectedSegmentIndex);
label.text = [segment titleForSegmentAtIndex:segment.selectedSegmentIndex];
}
//滑块
- (void)slider:(UISlider *)aSlider {
NSLog(@"%.2f", aSlider.value); //范围(0-1)
imageView.transform = CGAffineTransformMakeScale(aSlider.value, aSlider.value);
/* 区别:
//在变形参数t的基础上, 做修改
CGAffineTransformScale(<#CGAffineTransform t#>, <#CGFloat sx#>, <#CGFloat sy#>)
//在最开始的基础上, 做修改
CGAffineTransformMakeScale(<#CGFloat sx#>, <#CGFloat sy#>)
*/
}
//开关
- (void)open:(UISwitch *)swith {
//方法名, 该行在哪一行
NSLog(@"%s %d", __FUNCTION__,__LINE__);
NSLog(@"%d", swith.on);
textField.userInteractionEnabled = swith.on;
}
- (void)tap:(UIControl *)control {
NSLog(@"哈哈");
//获取到一个视图的方式
//1.扩大作用域(实例变量, 属性)
//2.tag(父视图通过tag找到子视图)
//3.关联方法,传递过来(前提是: UIControl或其子类)
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
事件处理, UIControl的子类
最新推荐文章于 2020-11-13 16:58:48 发布