2016-09-28 6 views
0

Я создал образец проекта, используя Xcode 8 с раскадрой, имеющей вид прокрутки и изображение в виде подсмотра scrollview. режим содержимого изображения установлен в центр. Прокрутка не прокручивается.Изображение не прокручивается, когда и 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 программным Scrollview работает. Что мне не хватает в приведенном выше коде? Приведенный ниже код работает

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

yep, работает как чемпион! Благодарю. – user3869369

 Смежные вопросы

  • Нет связанных вопросов^_^