iOS将Subview To Front无法在UIImageView上运行

时间:2014-04-02 14:06:24

标签: ios uiimageview subview

我知道我应该能够做到这一点:

[self.view bringSubviewToFront:myImageView];

它应该将图像视图放在前面。 myImageView已在故事板中设置,并使用@property和@synthesize链接到代码中。我可以做其他操作(通过动画加载图像和放大),但似乎无法让视图占据最上面的视图。因此,当动画完成时,与另一个图像视图重叠。

它所属的视图是一个模态呈现的视图控制器。在iPhone或iPad表单上。不兼容两者。还运行iAd。

我觉得奇怪的是,当我这样做时:

NSLog(@"number of subviews %d", self.view.subviews.count);

我得到1的结果。

有什么建议吗?我之前使用过这种方法与其他应用程序一起工作,但我的搜索表明我做得对。那么我哪里出错了?我认为必须要做的不是正确的自我。但不能理解为什么会这样。

根据要求提供更多代码:

[self.view bringSubviewToFront:myImageView];
        [UIView animateWithDuration:0.35 delay:0 options:0 animations:^{
            //save previous frame
            prevFrame = myImageView.frame;
            float width = [[UIScreen mainScreen] bounds].size.width;
            float height = [[UIScreen mainScreen] bounds].size.height;
            // Need to create a 320x320 centred square
            float originX = (width - 320)/2;
            float originY = (height -320)/2;
            CGRect newFrame = CGRectMake( originX, originY, 320, 320);
            [myImageView setFrame:newFrame];
        }completion:^(BOOL finished){
        }];

因此,您可以看到大部分代码都是关于图像的动画,以将其扩展到显示的中心。但是我能够像你期望的那样操纵图像,但它没有响应消息将它带到视图的前面。通常情况下,self.view带来了SubviewToFront并且可以工作,但我认为这条消息是错误的观点,我想不出来为什么?

1 个答案:

答案 0 :(得分:0)

如果彼此有2张图像,请使用

 [imageView setHidden:YES];

隐藏它 和

[imageView setHidden:No];

显示它