我正在制作的应用程序的一个元素有一个ViewController,它向用户显示图像缩略图和一些细节。我想要发生的是当用户点击图像时,全屏显示其原始大小(无论是纵向还是横向)。当用户再次点击时,它会将图像缩小为缩略图。
我目前正在使用分接功能,因此可以点按全屏,然后再次点击最小化,但它有一些问题。
它似乎过度拉伸图像,如果它是一个风景图像,它无论如何都会拉伸它的肖像。此外,缩略图位于UIScrollView中,因此当它有时放大图像时,它不会使其居中,并且在完全屏蔽时您仍然可以滚动。我可以请一些帮助/建议吗,我坚持做什么。我希望它具有类似于它在Twitter应用程序上的工作方式,如果有任何帮助的话。我对iOS开发也很陌生。
以下是执行点按时的代码:
-(IBAction)tap:(id)sender {
//goto new ViewController and set the image
if (!isFullScreen) {
[UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
//save previous frame
prevFrame = _imageView.frame;
[_imageView setFrame:[[UIScreen mainScreen] bounds]];
}completion:^(BOOL finished){
isFullScreen = TRUE;
}];
return;
} else {
[UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
[_imageView setFrame:prevFrame];
} completion:^(BOOL finished){
isFullScreen = FALSE;
}];
return;
}
}
答案 0 :(得分:3)
试试imageView.contentMode = UIViewContentModeScaleAspectFit;
并将其放置在初始化图像视图的位置。
答案 1 :(得分:1)
消除我使用的拉伸问题(Milo提供):
imageView.contentMode = UIViewContentModeScaleAspectFit;
就完全放映图像的居中和整体方法而言,我已经采纳了Leo的建议,并将以模态方式使用View Controller。
谢谢大家!