У меня есть проблема с func collectionView
внутри в class MoviesViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, UIScrollViewDelegate {
Как инициализировать CollectionView после загрузки пользовательской функции
Этой функции INIT автоматически, и я не хочу, чтобы начать автоматически. Или сделать это, когда он завершил загрузку функции, загружающей внешние данные.
Это моя структура код ViewController.swift
class MyViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, UIScrollViewDelegate {
@IBOutlet var scrollView : UIScrollView!
@IBOutlet var collectionView1 : UICollectionView!
Это функция я хочу нагрузки перед тем CollectionView
func loaddata(){
let url: NSURL = NSURL(string: "http://www.mywebsite/testdata.php")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
let bodyData = "data=something"
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
(response, data, error) in
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
}
}
override func viewDidLoad() {
super.viewDidLoad()
loaddata()
}
override func viewDidLayoutSubviews() {
self.scrollView!.contentSize = CGSizeMake(1920, 2200)
}
И здесь, функ CollectionView
INIT автоматически
//this is function that load automatically
func collectionView(collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0.0, left: 50.0, bottom: 0.0, right: 50.0)
}
// this is function load automatically
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if (collectionView == self.collectionView1) {
let cell : FeaturedCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(self.reuseIdentifierFeatured, forIndexPath: indexPath) as! FeaturedCollectionViewCell
let imageFilename = "featured-\(indexPath.row).jpg"
cell.featuredImage.image = UIImage(named: imageFilename)
return cell
}
return UICollectionViewCell()
}
Как я могу делать, чтобы сохранить ViewController
sta rt до loadData
? Или до ViewController
не начинаются до тех пор, пока вы не вызовете функцию от loadData
Почему у вас есть просмотр scrollview и коллекции как в одном представлении? –
Это структура, которую я получаю отсюда. Он работает хорошо, но мне нужно его изменить. CollectionView находится в ScrollView. Вот почему начинается автоматически? – OscarM
вы можете перезагрузить представление коллекции после того, как функция 'loadData()' завершает выборку сетевых данных. другое дело, я не нашел реализацию '-collectionView: numberOfItemsInSection:', которая сообщает коллекции, сколько элементов будет отображаться, оно должно возвращать '0' initiailly, когда у вас нет данных. –