iOS之分段控制器UISegmentedControl1. 分段控制器(UISegmentedControl)2. 事件监听3. 手势事件大全

1. 分段控制器(UISegmentedControl)

  • 作用:同一时刻只能选中一个标签
  • 基本使用:创建、设置选中、将其放在Navigation标题上
//创建
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:@[@"分组",@"全部"]];

//将其放在Navigation标题上
self.navigationItem.titleView = segmentControl; //分组器默认选中项segmentControl.selectedSegmentIndex = 0;

2. 事件监听

  • 监听 UISwitch 的状态改变,要使用 Value Changed 事件(可参照 UISlider 的使用)。
  • 常用的监听事件:UIControlEventValueChanged,值改变事件
[segmentControl addTarget:self action:@selector(segmentControlChangeValue:) forControlEvents:UIControlEventValueChanged];

3. 手势事件大全

  • iOS官方了20中手势,可以用来监听。
typedef NS_OPTIONS(NSUInteger, UIControlEvents) { 
UIControlEventTouchDown = 1 << 0, // on all touch downs 
UIControlEventTouchDownRepeat = 1 << 1, // on multiple touchdowns(tap count > 1) 
UIControlEventTouchDragInside = 1 << 2, 
UIControlEventTouchDragOutside = 1 << 3, 
UIControlEventTouchDragEnter = 1 << 4,
UIControlEventTouchDragExit = 1 << 5, 
UIControlEventTouchUpInside = 1 << 6, 
UIControlEventTouchUpOutside = 1 << 7, 
UIControlEventTouchCancel = 1 << 8,

UIControlEventValueChanged = 1 << 12, // sliders, etc. 
UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 13, // semantic action: for buttons, etc. 
UIControlEventEditingDidBegin = 1 << 16, // UITextField 
UIControlEventEditingChanged = 1 << 17, 
UIControlEventEditingDidEnd = 1 << 18, UIControlEventEditingDidEndOnExit = 1 << 19, // 'return key' ending editing 

UIControlEventAllTouchEvents = 0x00000FFF, // for touch events 
UIControlEventAllEditingEvents = 0x000F0000, // for UITextField 
UIControlEventApplicationReserved = 0x0F000000, // range available for application use 
UIControlEventSystemReserved = 0xF0000000, // range reserved for internal framework use 
UIControlEventAllEvents = 0xFFFFFFFF
};
  • UIControlEventTouchDown:单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
  • UIControlEventTouchDownRepeat:多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
  • UIControlEventTouchDragInside:当触摸在控件窗口内拖动时。
  • UIControlEventTouchDragOutside:当触摸在控件窗口之外拖动时。
  • UIControlEventTouchDragEnter:当触摸从控件窗口之外拖动到内部时。
  • UIControlEventTouchDragExit:当触摸从控件窗口内部拖动到外部时。
  • UIControlEventTouchUpInside:所有在控件之内触摸抬起事件。
  • UIControlEventTouchUpOutside:所有在控件之外触摸抬起事件
  • UIControlEventTouchCancel:所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
  • UIControlEventValueChanged:当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
  • UIControlEventEditingDidBegin:当文本控件中开始编辑时发送通知。
  • UIControlEventEditingChanged:当文本控件中的文本被改变时发送通知。
  • UIControlEventEditingDidEnd:当文本控件中编辑结束时发送通知。
  • UIControlEventEditingDidOnExit:当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
  • UIControlEventAlltouchEvents:通知所有触摸事件。
  • UIControlEventAllEditingEvents:通知所有关于文本编辑的事件。
  • UIControlEventAllEvents:通知所有事件。

2.3 设置segment的显示样式(segmentedControlStyle)

typedef NS_ENUM(NSInteger, UISegmentedControlStyle) { 
UISegmentedControlStylePlain, // large plain:系统默认平板样式 
UISegmentedControlStyleBordered, // large bordered:大宽边,黑边 
UISegmentedControlStyleBar, // small button/nav bar style. tintable:条状样式 
UISegmentedControlStyleBezeled, // DEPRECATED. Do not use this style.:不要用这个类型
} NS_DEPRECATED_IOS(2_0, 7_0, "The segmentedControlStyle property no longer has any effect") __TVOS_PROHIBITED;

2.4 UISegmentedControl的常见属性

属性名称

作用

BOOL momentary

点击之后是否恢复原样

numberOfSegments(只读)

总选项数

selectedSegmentIndex

用来设置或者获取选中项

2.5 设置分段控制器的宽度

  • 因为分段控制器有很多段,方便起见,可以循环赋值。
// 批量设置分组指示器的宽度 
for (NSInteger i = 0 ; i < segmentControl.numberOfSegments; i++) { 
[segmentControl setWidth:80 forSegmentAtIndex:i];
 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android群英传

记一次代码中毒急救

882
来自专栏blackheart的专栏

1.[Andriod]之Andriod布局 VS WinPhone布局

0.写在前面的话 近来被HTML+CSS的布局折腾的死去活来,眼巴巴的看着CSS3中的flex,grid等更便捷更高效的的布局方式无法在项目中应用,心里那叫一个...

2088
来自专栏葡萄城控件技术团队

ASP.NET 5系列教程 (三):view components介绍

在ASP.NET MVC 6中,view components (VCs) 功能类似于虚拟视图,但是功能更加强大。 VCs兼顾了视图和控制器的优点,你可以把VC...

1846
来自专栏AndroidTv

Activity 切换动画---点击哪里从哪放大

emmmm,这次来梳理一下 Activity 切换动画的研究。首先,老规矩,看一下效果图:

4375
来自专栏Java帮帮-微信公众号-技术文章全总结

WAI-ARIA无障碍网页应用属性完全展示

WAI-ARIA指无障碍网页应用。主要针对的是视觉缺陷,失聪,行动不便的残疾人以及假装残疾的测试人员。尤其像盲人,眼睛看不到,其浏览网页则需要借助辅助设备,如屏...

1224
来自专栏计算机编程

Android 自定义 svg 颜色

源码注释告诉了我们:此获取的drawable不与其他drawable 共享,简而言之,就是构建单独的内存模块来存储此drawable达到相互不影响的状态。

723
来自专栏技术博客

Knockout.Js官网学习(简介)

最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下。然后刚刚发现在建立a...

602
来自专栏非典型技术宅

断言和分段控制器1. 断言(Assertions)2. 分段控制器(UISegmentedControl)

823
来自专栏Android中高级开发

Android开发之漫漫长途 XVII——动画(续)

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索...

501
来自专栏程序员维他命

MJRefresh 源码解析

MJRefresh是李明杰老师的作品,到现在已经有1w+颗star了,是一个简单实用,功能强大的iOS下拉刷新(也支持上拉加载更多)控件。它的可定制性很高,几乎...

892

扫码关注云+社区