iOS盲人模式小结
来源:互联网 发布:移动4g网络频段 编辑:程序博客网 时间:2024/05/02 01:25
打开盲人模式
系统:10.0.1,手机型号:iphone5
流程如下:
关闭盲人模式
- 如果屏幕没有黑屏,直接关闭switch按钮就可以.
- 黑屏状态.三个手指同时触碰屏幕,注意是同时哦,连续点击屏幕三下。如果无效可以试试按三下home键。注意一定在语音提示手机解锁的状态操作。这个步骤之后手机屏幕亮起。
盲人模式使用经验
描述元素相关
accessibilityLabel 用来描述控件是什么.UIButton和lable会默认从title和text中获取,textField从输入框的内容获取..当元素获得焦点时会第一个播放.
accessibilityTraits 元素的特征.如按钮,链接等.元素获取焦点后会在第二个播放.由于会播放按钮等,因此accessibilityLabel可以不同添加链接的描述,直接使用系统描述的特征,如:lable为登陆,traint为按钮,系统会播放”登陆->按钮”.
accessibilityHint 用来描述一个动作.如下载链接,购买商品等.第三个朗读,默认为nil
accessibilityFrame 元素的frame.当元素过小时可以通过设置该frame使得容易点击,这个不会改变app的UI.如果不想让系统读取到该元素,可以设置frame为CGRectZero,效果等同于设计lable,hint为”“,traints为none.
accessibilityValue 元素的值.用在UISlider,UITextField等组件上.用来描述元素的值
isAccessibilityElement 设置是否支持盲人模式
isAccessibilityElement默认是false,UIKit默认打开,但是UIImageView需要单独打开.accessibilityElementHidden 不在读取该元素.isAccessbilityElement为NO只读取label,accessibilityElementHidden设为yes后lable也不再读取.
相关事件
Actions
Activate 单指轻点两次. 表示激活控件,如按钮点击
Escape. 单指 Z-shaped 手势一般用于退出模态界面或者返回导航的上一页界面
Magic Tap. 双指轻点两次触发 most-intended action.
Three-Finger Scroll. 触发水平滚动,如UIScrollView
Increment. 单指向上滑动,需要设置accessibilityTraits为UIAccessibilityTraitAdjustable,否则对应的方法不会被调用
Decrement. 单指向下滑动,需要设置accessibilityTraits为UIAccessibilityTraitAdjustable,否则对应的方法不会被调用
主动设置
- 设置焦点元素
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, element)
直接读出一段文字
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"read me");
是否开启了盲人模式
UIAccessibilityIsVoiceOverRunning()
监听盲人模式状态改变
通知名称为:UIAccessibilityVoiceOverStatusChanged
自定义绘制
- 如果view的元素是绘制上去的,可以实现这种代理方法
可以使用返回
- (NSArray *)accessibilityElements { if (_array != nil) { return _array; } _array = [NSMutableArray array]; UIAccessibilityElement *ele = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:self]; ele.accessibilityFrame = CGRectMake(CGRectGetMinX(self.frame), CGRectGetMinY(self.frame), CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame)); ele.accessibilityLabel = @"内容1"; [_array addObject:ele]; UIAccessibilityElement *ele2 = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:self]; ele2.accessibilityFrame = CGRectMake(CGRectGetMaxX(ele.accessibilityFrame), CGRectGetMinY(self.frame), CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame)); ele2.accessibilityLabel = @"内容2"; [_array addObject:ele2]; return _array;}- (NSArray *)accessibilityElements { return self.array;}- (BOOL)isAccessibilityElement { return NO;}- (NSInteger)accessibilityElementCount { return self.array.count;}- (id)accessibilityElementAtIndex:(NSInteger)index { return [self.array objectAtIndex:index];}
关于webView
webView不需要单独设置,开启后系统会自动设置,无法读取的内容需要改成lable等标签
参考文档
苹果文档
打开盲人模式
- iOS盲人模式小结
- iOS 盲人模式开发
- 盲人辅助模式Accessibility剖析
- iOS 设计模式小结
- 学习ios MVC设计模式的小结
- ios MVC设计模式的小结
- 盲人国度
- 关于前阵子学习ios MVC设计模式的小结
- iOS开发之控件ContentMode代码改变填充模式小结
- iOS中MVC、MVVM、MVP几种模式小结
- iOS 蓝牙使用小结 bluetooth中心模式swift,oc
- iOS小结
- Google 盲人科学家推出盲人手机软件
- 盲人 计算机英语
- 给盲人以眼睛
- Google把盲人拒之门外?
- 盲人的秘方
- 一支盲人登山队
- java简单程序学习(新手:第一次接触java)
- [VC6]std::vector派生类无法调用std::vector的解决方法
- 最安全的邮箱-Gmail
- JS的闭包(closure)
- AngularJS进阶(二十九)AngularJS项目开发技巧之localStorage存储
- iOS盲人模式小结
- [Leetcode]Odd Even Linked List
- jquery中的end()方法
- CSS 中Font Awesome 图标(附码表)
- TCP报文格式
- # HTML(四)
- JS面向对象程序设计
- C 编程过程中的一些问题及解决办法
- 转:js数组操作大全(pop,push,unshift,splice,shift方法)