У меня возникла ситуация с UIPageControl, встроенным в мой UICollectionView. На каждой странице есть собственная назначенная страница, которую я разделил на ячейки коллекции. Когда я перебираю вторую страницу, индикатор управления страницей остается на 1, и когда я сажусь на третью страницу, он правильно обновляется до третьего индикатора. Когда я сажусь, вернемся к странице 2, на странице управления теперь отображается правильный индикатор. Это происходит каждый раз, только для 2-й страницы.Почему мой uipagecontrol не обновляется правильно в первый раз, но во второй раз через Xcode
Вот некоторые из моего кода:
На главном контроллере с точки зрения сбора,
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cellId", forIndexPath: indexPath) as! ItemImageCell
if let imageURL = self.featuredItem.itemImageNames {
cell.itemImageURL = imageURL[indexPath.item]
cell.pageControl.currentPage = indexPath.item
cell.pageControl.numberOfPages = imageURL.count
}
return cell
}
А в классе cellView,
let pageControl: UIPageControl = {
let pageControl = UIPageControl()
pageControl.pageIndicatorTintColor = UIColor.grayColor()
pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
return pageControl
}()
override func setupViews() {
backgroundColor = UIColor.whiteColor()
addSubview(pageControl)
addConstraint(NSLayoutConstraint(item: pageControl, attribute: .CenterX, relatedBy: .Equal, toItem: self, attribute: .CenterX, multiplier: 1, constant: 0))
}
Am Я не устанавливая его правильно?
Edit:
featuredItem модель класса:
class FeaturedItem: NSObject {
var itemImageNames: [String]?
var itemTitle: String?
var itemHighlight: String?
var itemDescription: String?
var itemURL: String?
}
Возможно ли, что условное 'let' не верно? то есть. Может ли 'self.featuredItem.itemImageNames' быть nil? Вы загружаете это в фоновом режиме или таком? – Paulw11
Привет, Paulw11, featuredItem загружается через парсер json. Разбор заполняет информацию в featuredItem, включая массив String itemImageNames. При загрузке страницы featuredItem.itemImages имеет значение nil, заданное как необязательное в объекте модели. Я добавил код для просмотра. –