我正试图让图像全屏显示,听起来并不那么复杂。
它在检测到点按后正在进行工作:
- (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):我可能错过了一些重要信息。我以为我会为这个项目尝试自动布局。我猜那里有些东西不能让一切按预期工作吗?
答案 0 :(得分:1)
为此目的。它使用起来非常简单。
答案 1 :(得分:0)
也许您的视图内容模式错误,请将此行添加到设置图像后的位置:
bottleImageView.contentMode = UIViewContentModeScaleAspectFit;
答案 2 :(得分:0)
行。上面的代码适用于扩展视图。
我发现Autolayout限制存在问题。我无法确切地告诉你我改变了什么来修复问题 - 但几个小时的调试限制解决了这个问题。
我发现了一个更好的解决方案 - Facebook POP工作得更好,看起来更加流畅。
答案 3 :(得分:-2)
添加
[self.view bringSubviewToFront:bottleImageView]
后立即添加
[self.view addSubview:bottleImageView]