制作UIImageView全屏

时间:2014-04-16 07:01:48

标签: ios objective-c uiimageview

我正试图让图像全屏显示,听起来并不那么复杂。

它在检测到点按后正在进行工作:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView:self.view];

if (self.contentView.frame.origin.y >= 0 && CGRectContainsPoint(self.bottleImageView.frame, touchLocation)) {
    [UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
        [bottleImageView setFrame:[[UIScreen mainScreen] bounds]];
        bottleImageView.backgroundColor = [UIColor blackColor];
    }completion:^(BOOL finished){}];
...
}

但是有一个问题。我需要将UIImageView置于前面,以便将图像绘制在其他视图的前面。当我将[self.view bringSubviewToFront:bottleImageView];添加到混合中时(在动画块之前,在完成块中或在此代码之后),事情会发生变化。在第一次点击时,UIImageView背景变为黑色,在第二次点击时,视图将扩展为全屏。

我确信这是一件小而愚蠢的事,我忽略了。

编辑:我添加了触控代码

编辑(2):我可能错过了一些重要信息。我以为我会为这个项目尝试自动布局。我猜那里有些东西不能让一切按预期工作吗?

4 个答案:

答案 0 :(得分:1)

您可以使用MHFacebookImageViewer

为此目的。它使用起来非常简单。

答案 1 :(得分:0)

也许您的视图内容模式错误,请将此行添加到设置图像后的位置:

  

bottleImageView.contentMode = UIViewContentModeScaleAspectFit;

答案 2 :(得分:0)

行。上面的代码适用于扩展视图。

我发现Autolayout限制存在问题。我无法确切地告诉你我改变了什么来修复问题 - 但几个小时的调试限制解决了这个问题。

我发现了一个更好的解决方案 - Facebook POP工作得更好,看起来更加流畅。

答案 3 :(得分:-2)

添加

[self.view bringSubviewToFront:bottleImageView] 

后立即添加

[self.view addSubview:bottleImageView]