UISegmentedControl去掉背景色与UIScrollView联动
UISegmentControl分段控制器是UIKit框架提供的一组按钮栏,提供多个可选的按钮,只能激活其中的一个,响应事件。主要用来在同一层次重要性下不同的信息展示或者不同的界面展示之间切换。例如手机QQ的主界面的消息和电话两个选项卡。

我们看一下UISegmentedControl的继承结构:
UISegmentedControl-->UIControl-->UIView-->UIResponder-->NSObject
在iOS事件相关类中我们知道UIControl将触摸事件转换成了带接收方的控件事件,它本身是个抽象类,只能实例化它的子类来处理控件事件。UISegmentedControl继承自UIControl,它具有所有UIControl的属性和方法。
属性
@property(nonatomic) UISegmentedControlStyle segmentedControlStyle NS_DEPRECATED_IOS(2_0, 7_0, "The segmentedControlStyle property no longer has any effect") __TVOS_PROHIBITED;
@property(nonatomic,getter=isMomentary) BOOL momentary; // if set, then we don't keep showing selected state after tracking ends. default is NO
@property(nonatomic,readonly) NSUInteger numberOfSegments;
@property(nonatomic) BOOL apportionsSegmentWidthsByContent NS_AVAILABLE_IOS(5_0);
@property(nonatomic) NSInteger selectedSegmentIndex;
@property(null_resettable,nonatomic,strong) UIColor *tintColor;iOS7之后采用扁平化设计风格,segmentedControlStyle被废弃,设置了也没有效果。momentary设置点击之后是否恢复原样,默认是NO。numberOfSegments表示选项卡的个数。apportionSegmentWidthsByContent默认为NO,如果设置为YES,对于宽度为0的segment它将根据其内容自动调整segment的宽度。selectedSegmentIndex表示当前选中的segment的索引。 tintColor描述View中线条轮廓的颜色,它默认会一直从最底部的View向上层传递,直到某个子View修改了tintColor,传递链断开,新的tintColor继续向上层传递。更多关于
tintColor和backgroundColor和foregroundColor的区别参考iOS字体颜色图片部分。对象方法
- (instancetype)initWithItems:(nullable NSArray *)items; // items can be NSStrings or UIImages. control is automatically sized to fit content
- (void)insertSegmentWithTitle:(nullable NSString *)title atIndex:(NSUInteger)segment animated:(BOOL)animated; // insert before segment number. 0..#segments. value pinned
- (void)insertSegmentWithImage:(nullable UIImage *)image atIndex:(NSUInteger)segment animated:(BOOL)animated;
- (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;
- (void)removeAllSegments;
- (void)setTitle:(nullable NSString *)title forSegmentAtIndex:(NSUInteger)segment; // can only have image or title, not both. must be 0..#segments - 1 (or ignored). default is nil
- (nullable NSString *)titleForSegmentAtIndex:(NSUInteger)segment;
- (void)setImage:(nullable UIImage *)image forSegmentAtIndex:(NSUInteger)segment; // can only have image or title, not both. must be 0..#segments - 1 (or ignored). default is nil
- (nullable UIImage *)imageForSegmentAtIndex:(NSUInteger)segment;
- (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment; // set to 0.0 width to autosize. default is 0.0
- (CGFloat)widthForSegmentAtIndex:(NSUInteger)segment;
- (void)setContentOffset:(CGSize)offset forSegmentAtIndex:(NSUInteger)segment; // adjust offset of image or text inside the segment. default is (0,0)
- (CGSize)contentOffsetForSegmentAtIndex:(NSUInteger)segment;
- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment; // default is YES
- (BOOL)isEnabledForSegmentAtIndex:(NSUInteger)segment;以上方法比较简单,根据方法名字就知道它的具体功能。需要注意的是
initWithItems的数组参数既可以是字符串也可以是图片,segmentedControl会根据文字或者图片的宽高自动设置自己的宽高。setContentOffset设置图片或者文字内容相对于单个segment的坐标原点也就是左上角的偏移量,默认是(0,0).更多关于offset,inset的内容请参考iOS基本框架UIKit之几何形状setEnabled forSegmentAtIndex用来设置指定的索引的segment能否被选中。- 1.懒加载分段选择器,并且去掉分段选择器的选中蓝色渲染特效
//分段选择器
-(UISegmentedControl *)switchBtn{
if (!_switchBtn) {
_switchBtn=[[UISegmentedControl alloc]initWithItems:@[@"第1页",@"第2页",@"第3页"]];
[self.view addSubview:_switchBtn];
_switchBtn.backgroundColor=[UIColor whiteColor];
_switchBtn.layer.borderColor=[UIColor whiteColor].CGColor;
_switchBtn.tintColor=[UIColor whiteColor];
[_switchBtn addTarget:self action:@selector(actionSwitchBtn:) forControlEvents:UIControlEventValueChanged];
//设置分段选择器选中颜色
[_switchBtn setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]} forState:UIControlStateNormal];
[_switchBtn setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blueColor]} forState:UIControlStateSelected];
_switchBtn.selectedSegmentIndex=;
}
return _switchBtn;
}
- 2.分段选择器与UIScrollView联动方法:
-(void)actionSwitchBtn:(UISegmentedControl*)segmentedControl{
self.scrollView.contentOffset=CGPointMake(self.view.frame.size.width*self.switchBtn.selectedSegmentIndex, );
}
#pragma -mark scrollview的代理方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
self.switchBtn.selectedSegmentIndex=self.scrollView.contentOffset.x/self.scrollView.frame.size.width;
}
UISegmentedControl去掉背景色与UIScrollView联动的更多相关文章
- UIColor用自定义颜色,TableView去掉背景色
1.用mac系统自带的数码测色计,选RGB模式,将值添加到ColorWithRed:xxx.0/255 最后的alpha选1.0 2.TableView的背景色要用setBackgroundView的 ...
- 小程序BUTTON点击,去掉背景色
添加hover-class <button form-type="submit" hover-class="btn-hover"></but ...
- idea xml 绿背景色 去掉拼写检查
去掉背景色 去掉拼写检查
- IOS 改变UISearchBar的背景色
之前网上提供的方法试了很多种 都不能很好的去掉背景色 ,修改背景色方法如下: searchbar.barStyle = UIBarStyleBlackTranslucent; searchbar. ...
- iOS-UI-UI控件概述
以下列举一些在开发中可能用得上的UI控件: IBAction和IBOutlet,UIView 1 @interface ViewController : UIViewController 2 3 @p ...
- iOS-UI控件概述
IBAction和IBOutlet,UIView 1 @interface ViewController : UIViewController 2 3 @property(nonatomic, wea ...
- 不透明度opacity进阶
一.opacity属性 1.opacity 习惯上说“透明度”,其实应该叫“不透明度”.opacity 意思:不透明,而背景色的默认值:transparent意思才是“透明的”.所以opacity用来 ...
- 移动端 几个css3属性的练习
转行做前端,上班有一个星期了,什么都不懂,今天学习了几个新的css3属性,记录下来. 注:所有的测试均是在chrome上手机模式测试,与真实的手机环境可能有误差 1:-webkit-tap-heigh ...
- 【译】仿Taasky的3D翻转菜单动画实现
最终效果 最终效果 开始 首先下载并打开一个事先搭好架子的Demo,然后来分析一下.这个Demo包含一个主页和详情页,其中MenuViewController继承自UITableViewControl ...
随机推荐
- Java 快速失败( fail-fast ) 安全失败( fail-safe )
原文:http://www.cnblogs.com/ygj0930/p/6543350.html 快速失败( fail-fast ):当你在迭代一个集合的时候,如果有另一个线程正在修改你正在访问的那个 ...
- B.大钉骑马走江湖
江湖是什么,对于在象棋界厮杀的大钉来说,江湖就是一个矩阵,他的目标,就是在江湖之中骑着马,从他的位置出发,走到终点. 当然,大钉的马也遵从中国象棋中的“马走日”的规则,而且在矩阵中,也会有一些障碍物, ...
- Codeforces Beta Round #25 (Div. 2 Only)E. Test
E. Test time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...
- POJ3252 Round Numbers —— 数位DP
题目链接:http://poj.org/problem?id=3252 Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Su ...
- poj 2923 Relocation 解题报告
题目链接:http://poj.org/problem?id=2923 题目意思:给出两部卡车能装的最大容量,还有n件物品的分别的weight.问以最优方式装入,最少能运送的次数是多少. 二进制表示物 ...
- MySQL 优化之 EXPLAIN 关键字
MySQL查询优化之explain的深入解析 0. 准备 首先执行如下的 sql 语句: CREATE TABLE IF NOT EXISTS `article` (`id` int(10) unsi ...
- HNOI2017 day1 T3 礼物
题目大意: 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在她生日的前一天 ...
- Bootstrap-CL:下拉菜单
ylbtech-Bootstrap-CL:下拉菜单 1.返回顶部 1. Bootstrap 下拉菜单(Dropdowns) 本章将重点介绍 Bootstrap 下拉菜单.下拉菜单是可切换的,是以列表格 ...
- vue-resource 设置请求的参数以formData形式以及设置请求的过滤器
在main.js中添加下面的设置: Vue.http.options.emulateJSON = true;Vue.http.options.headers = {'Content-Type': 'a ...
- python-day-9- 进程-异步IO\
本节内容 进程 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 多进程multiprocessing multiprocessing is a package that sup ...