2016-09-28 33 views
0

我创建了一个使用Xcode 8的示例项目,其中故事板的滚动视图和图像视图作为滚动视图的子视图。图像视图的内容模式设置为居中。滚动视图不滚动。当scrollview和图像视图都在故事板中时,图像不会滚动

![Here are the constraints in the story board: scrollView]1

下面是代码

import UIKit 

类的ViewController:UIViewController的{

@IBOutlet weak var imageView: UIImageView! 

@IBOutlet weak var scrollView: UIScrollView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    imageURL = "http://www.hdwallpapers.in/walls/cosmea_floral_bloom-wide.jpg" 
} 

var imageURL: String? { 
    didSet { 
     updateImage() 
     scrollView.contentSize = imageView.frame.size 
    } 
} 

func updateImage() { 
    if let data = NSData(contentsOf: URL(string:imageURL!)!) { 
     imageView.image = UIImage(data: data as Data) 
     imageView.sizeToFit() 
    } 
} 

}

然而,当我编程方式创建我的ImageView,滚动视图工作。在上面的代码中我缺少什么?下面的代码工作

import UIKit 

类ImageViewController:UIViewController的{

var image: UIImage? { 
    get { 
     return imageView.image 
    } 
    set { 
     imageView.image = newValue 
     imageView.sizeToFit() 
    } 
} 

var imageUrl: URL? { 
    didSet { 
     image = nil 
     fetchImage(url: imageUrl) 
    } 
} 

func fetchImage(url: URL?) { 
    let data = NSData(contentsOf: url!) 
    image = UIImage(data: data as! Data)! 
} 

var imageView = UIImageView() 

@IBOutlet weak var scrollView: UIScrollView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    imageUrl = ImageData.imageURL(for: ImageData.images["imageOne"]!)! 
    scrollView.addSubview(imageView) 
    scrollView.contentSize = imageView.frame.size 
} 

}

+0

当您在故事板中设置时,您添加了哪些限制? – beyowulf

+0

我添加了限制 – user3869369

回答

0

,应该删除居中X和对齐芯Y的约束。这些约束是保持你的图像视图,并且不允许滚动。

当您删除它们时,您可能会收到一个约束错误。这是因为在设计时你的布局不明确。图像视图的固有尺寸基于图像,但您希望在运行时设置图像。为了解决这个问题,你应该选择你的图像视图,转到尺寸检查器,单击固有尺寸下拉菜单并设置占位符大小。占位符大小只能在设计时使用,并在运行时更换。

+0

的截图,就像冠军!谢谢。 – user3869369