无法基于UIIMage设置UIScrollView contentSize

时间:2017-04-09 16:36:53

标签: ios swift uiscrollview

我现在正在努力争取UIIcrollView.contentSize大小为UIImage,但UIImage没有返回合适的大小,我不知道为什么。 结果是我的scrollView内容是正方形(与scrollView的框架相同),我无法滚动到图像的一侧。 这真是令人沮丧!您可以在调试器中看到我的image1.size无效。

enter image description here

3 个答案:

答案 0 :(得分:0)

您正在从不存在的数组访问图像,请参阅您的控制台日志,它明确指出索引超出范围。这就是为什么你没有得到任何尺寸和高度,因为特定索引中没有图像

答案 1 :(得分:0)

您的图片视图尺寸显示错误,因为您的滚动视图内容尺寸错误。使用此方法比打印图像视图框架。它会起作用

 override func viewDidLayoutSubviews()
{
  self.scrollView1.delegate = self
  self.scrollView1.contentSize = CGSize(width:self.view.frame.size.width, height: self.view.frame.size.height)
}

答案 2 :(得分:0)

好吧,我一直在努力解决这个问题,最后我找到了答案。问题确实在于内容大小,我终于能够正确计算它,如下所示: let tempScrollView = UIScrollView(frame:self.imageLocationsArray [imageID])         让tempImageView = UIImageView(image:image)

    //determine proportions of image against frame
    let imageWidthFactor = image.size.width / tempScrollView.frame.width
    let imageHeightFactor = image.size.height / tempScrollView.frame.height

    //image is too wide
    if imageWidthFactor > imageHeightFactor {
        tempImageView.frame = CGRect(x: 0, y: 0, width: tempScrollView.frame.width * imageWidthFactor / imageHeightFactor, height: tempScrollView.frame.height)
    }
    //image is too tall
    else {
        tempImageView.frame = CGRect(x: 0, y: 0, width: tempScrollView.frame.width, height: tempScrollView.frame.height * imageHeightFactor / imageWidthFactor)
    }