一句代码就解决一个开发中常见的小bug....

UI中如何彻底解决在修改个别button之后,背景图片总是覆盖它本身的子控件的方法?

在ios应用程序的开发过程中,设计UI阶段,我们免不了要反复设置不同控件的属性, 但是这样总是会出现一点小小的bug,那就是,我们最开始设置的背景图片,总是会覆盖住我们在其内部添加的子控件,   

而这个时候,我们往往都是返回storyboard里面去调整背景图片的次序,然后再多次的测试和调整,才可以调整回来,

很显然,这种方法非常的浪费时间和精力,那我们有没有一个非常简便的方法来一劳永逸的解决这个问题呢? 

 我这里自己在开发过程中,总结了一个非常好用的方法,这里就分享给大家:  

     思路:  1.平时我们开发过程中,点击一个图片button就让图片放大到前端, 这里我们往往会用一个方法,来将这个图片button始终显示在最前端,

    如:  

  把中间图片按钮放置在所有图层的最上面

    [self.view bringSubviewToFront:self.minidleIamgeViewButton];

   2. 那么我们有没有一个方法,也可以将背景图片始终固定在最下面一层呢?  

   于是我查看了不少帮助文档,终于让我找到一种方法, 如下:

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     //程序启动就自动加载相应尺寸的背景图片  
 4     UIImage *imageBj = [UIImage imageNamed:@"bj"];
 5     self.blackImageView.image = imageBj;
 6     
 7     //将我们设定的背景View始终设置在最下面显示
 8      //注意:这个方法的实现前提是:我们自定义的view作为背景,而且这个view是根视图view的子控件 
 9     [self.view sendSubviewToBack:self.blackImageView];
10        
11 }

//注意:这个方法的实现前提是:我们自定义的view作为背景,而且这个view是根视图view的子控件 

我们这里调用的是view的一个属性方法 sendSubviewToBack:  ,让它在程序一启动的时候,就调用这个方法,

通过这个方法,我们就可以从一开始,就用一行代码来解决这个小bug,从此可以为我们后期的开发调试节省大量的时间和精力,

一行代码就解决一个开发bug,确实非常实用,而且这个方法在开发任何的程序中,都可以优先写入!

- (void)viewDidLoad {

    [super viewDidLoad];

    //程序启动就自动加载相应尺寸的背景图片  

    UIImage *imageBj = [UIImage imageNamed:@"bj"];

    self.blackImageView.image = imageBj;

    //将我们设定的背景View始终设置在最下面显示

     //注意:这个方法的实现前提是:我们自定义的view作为背景,而且这个view是根视图view的子控件 

    [self.view sendSubviewToBack:self.blackImageView];

}

希望对大家有用

原文地址:https://www.cnblogs.com/anRanTimes/p/5064921.html