UIControl的子类UISwitch, UISegmentedCntrol, UIPageControl详解
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.UISwitch *swit = [[UISwitch alloc] initWithFrame:CGRectMake(20, 300, 100, 20)];[self.view addSubview:swit];// 3. (开关按钮)圆圈的颜色swit.thumbTintColor = [UIColor yellowColor];// switch 宽和高不影响控件, 只有x和y// 1. 开启时的控件内部颜色swit.onTintColor = [UIColor blueColor];// 2. 边框及切换到关闭的时的颜色(non_resettable)swit.tintColor = nil;// 4. 打开时的图片, ios7后失效swit.onImage = [UIImage imageNamed:@"456"];// 5. 关闭时的图片, 也失效swit.offImage = [UIImage imageNamed:@"456"];// 6. 判断switchControl的开闭状态// 通过setter方法, 给变switchControl的初始状态swit.on = YES;NSLog(@"%@", swit.isOn ? @"yes" : @"no");[swit setOn:YES animated:NO];// 添加绑定事件(与button相同) [swit addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];// slider// 高度不影响控件的高度, 这个控件永远居中与视图中间UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 100, 100, 20)];[self.view addSubview:slider];// slider.minimumValueImage = [UIImage imageNamed:@"456"];// 1. 滑块最大值和最小值, 最大和最小可以根据需求去改变slider.maximumValue = 200.0f;// 2. 当前滑块的值slider.value = 50.0f;[slider setValue:100 animated:YES];// 3. 最小值和最大值显示的图片// maximumValueImage minimumValueImage// 4. containous 为no时, 只在按下和松手是触发方法slider.continuous = NO;NSLog(@"%@", slider.isContinuous ? @"yes" : @"no");// 5. 绑定事件 [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];CGRect rect = [slider maximumValueImageRectForBounds:slider.bounds];NSLog(@"%f, %f", rect.size.width, rect.size.height);// 8. maximumTrackTintColor 未移动到的区域的颜色slider.maximumTrackTintColor = [UIColor blueColor];// 9. minimumTrackTintColor 已移动的区域的颜色slider.minimumTrackTintColor = [UIColor whiteColor];// 10. 滑块的颜色// slider.thumbTintColor = [UIColor blueColor];// 11. 设置进度条滑块左边的图片[slider setMinimumTrackImage:[UIImage imageNamed:@"player_slider_playback_right"] forState:UIControlStateNormal];// 12. 设置进度条滑块右边的图片[slider setMaximumTrackImage:[UIImage imageNamed:@"player_slider_playback_left"] forState:UIControlStateNormal];// 13. 设置圆圈的图片[slider setThumbImage:[UIImage imageNamed:@"player_slider_playback_thumb"] forState:UIControlStateNormal];self.seg = [[UISegmentedControl alloc] initWithItems:@[@"first", @"second", @"last", @"one", @"two"]];// segment不给frame, 系统会自动计算大小, 推荐, 自己加上frameself.seg.frame = CGRectMake(0, 0, 600, 50);[self.view addSubview:self.seg];// 1. momentary 设置为yes 如果点击选中没有选中的效果,// 默认为NOself.seg.momentary = YES;// 2. seg的控制段的数量NSInteger number = self.seg.numberOfSegments;NSLog(@"分段控制器的段数:(items的个数) %ld", number);// 3. remove 移除// 4. insertSegmentWithTitle:@"name" atIndex:2 animated:YES 插入// 5. setTitle:forSegmentAtIndex: 用来修改对应下标的标题// 6. setWidth:0 forSegmentAtIndex: 默认是0[self.seg setWidth:0 forSegmentAtIndex:0];// 7. setContentOffset:<#(CGSize)#> forSegmentAtIndex:<#(NSUInteger)#> 设置对应下标内容的偏移[self.seg setContentOffset:CGSizeMake(20, 0) forSegmentAtIndex:0];// 8. 能否被选中[self.seg setEnabled:NO forSegmentAtIndex:0];// 9. selectedSegmentIndex 开始选中的下标self.seg.selectedSegmentIndex = 1;// 10. tintColor文字及边框颜色self.seg.tintColor = [UIColor greenColor];// 11. apportionsSegmentWidthsByContent 默认为no// 如果分段控制器的段宽为0时, 并且该属性为YES, 系统会自动计算self.seg.apportionsSegmentWidthsByContent = YES;// 12. 绑定事件 [self.seg addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];UIPageControl *page = [[UIPageControl alloc] initWithFrame:CGRectMake(10, 500, 100, 30)];page.backgroundColor = [UIColor blackColor];// 1. 分页控制器的页数 默认为 0page.numberOfPages = 5;// 2. 当前页page.currentPage = 3;// 3. 当只有一页的时候pageControl隐藏page.hidesForSinglePage = YES;// 4.CGSize size = [page sizeForNumberOfPages:4];NSLog(@"size++%@", NSStringFromCGSize(size));// 其他页的颜色page.pageIndicatorTintColor = [UIColor redColor];// 当前页的颜色page.currentPageIndicatorTintColor = [UIColor whiteColor];[self.view addSubview:page];// 绑定事件 [page addTarget:self action:@selector(pageControllChange:) forControlEvents:UIControlEventValueChanged];// 设置为yes, 关闭系统事件page的切换, 直到调用updateCurrentPageDisplay的方法, 才会显示page.defersCurrentPageDisplay = YES; } - (void)pageControllChange:(UIPageControl *)page {NSLog(@"Change");[page updateCurrentPageDisplay]; } - (void)segAction:(UISegmentedControl *)seg {NSLog(@"%ld", seg.selectedSegmentIndex);switch (seg.selectedSegmentIndex) {case 1:break;case 2:break;// ....default:break;} }// - (void)sliderAction:(UISlider *)slider {NSLog(@"%f", slider.value);} - (void)switchAction:(UISwitch *)swit {NSLog(@"开关事件");[self.seg insertSegmentWithTitle:@"name" atIndex:2 animated:YES];[self.seg insertSegmentWithImage:[UIImage imageNamed:@"player_slider_playback_thumb"] atIndex:2 animated:YES]; } - (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }
转载于:https://www.cnblogs.com/mafeng/p/5685715.html
UIControl的子类UISwitch, UISegmentedCntrol, UIPageControl详解相关推荐
- java父类引用子类属性_Java多态性详解——父类引用子类对象
面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...
- java 父类获取子类对象_Java多态性详解 (父类引用子类对象)
面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...
- 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ; 一. UI 控件简介 1. UI 控件分类 UI 控件分类 : 活 ...
- python代码案例详解-第7.20节 案例详解:Python抽象类之真实子类
第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义了图形 ...
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- java多态性详解——父类引用子类对象
Java的多态性 面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作 ...
- (119)System Verilog 父类与子类对象复制(自定义函数)详解
(119)System Verilog 父类与子类对象复制(自定义函数)详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 父类与子 ...
- (118)System Verilog 父类与子类对象复制(copy函数)详解
(118)System Verilog 父类与子类对象复制(copy函数)详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 父类与 ...
- python的抽象类详解_第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类...
第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继 ...
最新文章
- 生成公钥链接github
- CSS中的盒子阴影和文字阴影
- ffmpeg rtp时间戳
- java resources 目录_Maven项目中读取src/main/resources目录下的配置文件的方法
- 【转】温故之.NET 异步
- python从菜鸟到高手 pdf 百度云_Python从菜鸟到高手(4):导入Python模块
- 【To Do】程序员面试金典——18.11最大子方阵
- Katalon Recorder 自动录制 Selenium 爬虫脚本
- 计算机键盘指示灯不亮也不启动不了机,电脑开不开机,显示器无反应,键盘指示灯不亮,主...
- Label的常用属性设置和使用
- lio-sam框架:回环检测及位姿计算
- SendMessage用法
- IDEA+SpringBoot+Vue
- Perl语言中一些内置变量等,$、qw、cmp、eq、ne等
- 国际经济学——期末复习
- 你想知道你的计算机一秒能做多少次运算吗?
- CS全新一代SDNAND(又称贴片式T卡)如何让老款MCU焕发青春活力
- 女朋友可能的若干职业,您选择哪种女孩做女朋友?
- 2017.2.12 开涛shiro教程-第七章-与Web集成
- RS232的硬件流控:DCD DSR DTR RTS CTS