2016-09-28 29 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