zoukankan      html  css  js  c++  java
  • 控件不显示可能是哪些原因?

    控件不显示可能是哪些原因?

    是日常开发中,特别是对于初学者而言,我们编写代码,一步一步的验证的时候,时常会出现控件无法显示的情况, 这里我总结了几种可能出现控件不显示的情况和原因, 希望能对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

  • 相关阅读:
    托付和事件的使用
    在使用supervisord 管理tomcat时遇到的小问题
    无法安装vmware tools的解决方PLEASE WAIT! VMware Tools is currently being installed on your system. Dependin
    (转)Openlayers 2.X加载高德地图
    (转)openlayers实现在线编辑
    (转) Arcgis for js加载百度地图
    (转)Arcgis for js加载天地图
    (转) 基于Arcgis for Js的web GIS数据在线采集简介
    (转) Arcgis for js之WKT和GEOMETRY的相互转换
    (转)Arcgis for Js之Graphiclayer扩展详解
  • 原文地址:https://www.cnblogs.com/anRanTimes/p/5190976.html
Copyright © 2011-2022 走看看