我想创建一个与您在Photo应用程序中平移/缩放图像完全相同的scrollView:
- 横向图像在纵向屏幕上适合宽高比,
- 您可以放大图像,
- 如果您旋转设备缩放(横向),图像将保留在中间,
- 当您缩放时,图像仍然适合新的横向屏幕(拉伸全屏)。
所以我需要一次适合宽高比和缩放功能。
我已经实现了一个解决方案,我在layouSubviews中“手动”布局scrollView的内容以使方面适合,但这会扰乱缩放行为。
有一种巧妙的UIKit方式来处理这个问题吗? 或者我必须在这里创建自己的实现?
答案 0 :(得分:0)
您需要启用缩放(并设置最小和最大缩放比例),然后实现scrollViewDidZoom。这里有一些示例代码可以帮助您开始处理图像居中。你可以调整它来做其他部分:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
CGSize boundsSize = scrollView.bounds.size;
CGRect frameToCenter = imageView.frame;
// center horizontally
if (frameToCenter.size.width < boundsSize.width)
frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width) / 2;
else
frameToCenter.origin.x = 0;
// center vertically
if (frameToCenter.size.height < boundsSize.height)
frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height) / 2;
else
frameToCenter.origin.y = 0;
imageView.frame = frameToCenter;
}
注意:此代码假定您在UIScrollView中保留对UIImageView(在此示例中为imageView)的引用。