控件不显示可能是哪些原因?
2016-02-15 17:30
211 查看
控件不显示可能是哪些原因?
是日常开发中,特别是对于初学者而言,我们编写代码,一步一步的验证的时候,时常会出现控件无法显示的情况, 这里我总结了几种可能出现控件不显示的情况和原因, 希望能对iOS初学者能提供一些解决问题的思路和有更多的帮助:*某个控件显示不出来可能导致的原因:
1. frame属性,是否为0,或者设置的位置不对
在开发中,特别是在自定义某些控件的属性的时候, 对于控件的frame如果没有设置,或者设置错误了,控件肯定是不会显示正常的,所以当你遇到控件显示不正常的时候,第一个需要思考的就是控件本身的frame属性是否正常;2. hidden =YES
多数情况下,我们需要对控件的hidden属性,也就是是否隐藏,作一些自定义, 所以,如果你检查了frame属性,确定是对的,但是控件还是不能显示,那么你可以来考虑一下是不是在某个时刻我们对这个控件的hidden属性做了设置;3.是否添加到了父控件中
还有一种情况,那就是,当我们需要把某个控件添加到一个父容器(父控件)中才会显示的时候,如果,我们忘记了添加的步骤,也是不会显示控件的,所以,这个时候,你不妨来检查一下这个方面;4. Alpha <= 0.01
通过苹果的官方文档,我们知道,当一个控件的透明度大于>0.01的时候,是可以监听事件的,否则(<=0.01),是无法监听事件的, 所以,如果Alpha<= 0.01.系统就认为这个控件不存在,此时不能监听事件,当然,也就在运行的是无法查看到控件了,5.被其他控件挡住了。
控件与控件之间都是有先后层叠次序的, 如果我们需要显示的控件被其他控件给挡住了,那肯定是看不到控件的显示的,也就是我们常说的:后添加的控件默认是添加在最上层的;这个时候,我们可以去检查一下控件的层叠次序,如果,你已经可以固定某一个控件在最上面,你可以调用一个方法,把它始终置于最上层: 如:
[self.view bringSubviewToFront:redView];
通过bringSubviewToFront:这个方法,你就可以始终把某一个控件置于最上层, 当然,有最上层也就有最下层,如下:
> //把中间图片按钮放置在所有图层的最上面 > [self.viewbringSubviewToFront:self.minidleIamgeViewButton]; > //把背景图片始终置于最下面一层 > [self.viewsendSubviewToBack:self.downImageView];
6.检查父控件的上面这5种情况。
如果,上面5中情况,你都检查了,还是没有找出原因,那么可能出现问题的是你的父控件了,所以,你可以在逐步的检查父控件的这几种情况;上面的小总结,是我日常开发中的一些思考,希望能给大家带来帮助,
详情可查看我的GitHub项目:
https://github.com/DXSmile/Control-view-does-not-show-what-might-be-the-reason-/tree/master
相关文章推荐
- rabbitmq 和 kafka 简单的性能测试
- 区别Transform、Transition、Animation
- 一道常被人轻视的前端JS面试题(转)
- iproute-2.6.32
- Remote desktop the best practice
- 监听ScrollView滑到底部
- MongoDB 3.0 速上手教程(JAVA)
- 利用python进行数据分析之数据加载存储与文件格式
- 从其他APP分享图片到自己的APP指定界面内
- DevExpress自学笔记—整体修改窗体及控件的皮肤样式1
- Markdown中插入数学公式的方法
- viewpager中的PagerTabStrip和PagerTitleStrap
- 事务(sqlite本地数据操作优化)
- struts1和2的区别总结
- 转载:轻量级浏览器特性检测库:feature.js
- android 多进程之 Messenger
- Jquery前端封装--DOM加载
- 成功的背后!(给所有IT人)
- 媒体查询hack
- WebSocket使用教程 - 带完整实例