2015-12-07 5 views
0

Я пытаюсь реализовать очень простой вид коллекции с подклассом ячеек, который был разработан в IB. Снимок экрана может лучше объяснить проблему, которую я вижу, но в основном представление изображения, которое я добавил в свою ячейку в IB, не отображается как подвью внутри ячейки, а является подвью к представлению коллекции. Кроме того, розетка в моем подклассе ячейки не подключена.Выход подкласса UICollectionViewCell не подключен

Как вы можете видеть на скриншоте справа, я добавил ImageView в ячейку, а отображение иерархии представлений в IB показывает изображение в виде подсмотра ячейки (технически это представление содержимого ячейки, но Я не думаю, что IB отличает это здесь). Тем не менее, слева (где я перешел в Debug-> View Debugging-> Capture View Hierarchy), вы можете видеть, что образы изображений искажены вдоль одного измерения и не являются частью подсмотров содержимого contentview. Я следовал за руководством Рэя Вендерлиха и ранее реализовал CollectionViews (хотя я определенно не эксперт), но я не могу понять, что отличает мой проект. И я не уверен, как отлаживать то, что происходит внутри ячейки, потому что оно не реализует традиционные методы просмотра, такие как viewDidLayoutSubviews и т. Д. Любые советы по чему-то, возможно, глупому, что я делаю, очень ценятся!

Screenshot of XCode & Storyboard

ответ

2

раз спасибо за вашу помощь и затраченного времени. Проблема заключалась в том, что я проектировал ячейку в IB, но также вызывая

self.collectionView!.registerClass(TestCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 

внутри вида коллекции метода контроллера viewDidLoad (на самом деле код шаблона для подкласса UICollectionViewController делает это автоматически). Когда я это сделал, ячейка, созданная на основе идентификатора повторного использования, не связана с той, что находится на доске истории, поэтому выходы не подключены.

0

В вашем случае, я думаю, что вы не правильно настроили ViewController/коллекция класса вид контроллер с IB розеткой. Следуйте ниже, чтобы создать ячейку в виде коллекции с пользовательским объектом (вид изображения, ярлык и т. Д.).

1) First of all provide your custom Class file according to your IB UI. 
Please review attached sc. 

enter image description here

Здесь я прежде всего создать файл класса (.h & .m). Для Ex:

// CollectionViewController.h 
#import <UIKit/UIKit.h> 

@interface CollectionViewController : UICollectionViewController 
@property (weak, nonatomic) IBOutlet UIImageView *CollectionIV; 

@end 

2) Take Collectionview controller IB UI in storyboard or .xib. 
3) Connect your class file with IB UI. Review above SC. 
4) Optional - If required then setup correct DataSource and Delegate method with UI. 
+0

спасибо за подробный ответ и скриншоты, но все это правильно настроен! – neal

+0

@neal, можете ли вы отправить демонстрацию своего проекта? поэтому, я постараюсь выяснить. –

+0

Привет, Рениш, Еще раз спасибо за вашу помощь и потраченное время. Проблема заключалась в том, что я проектировал ячейку в IB, но также вызывал self.collectionView! .registerClass (TestCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) ​​внутри метода viewDidLoad контроллера представления коллекции (на самом деле код шаблона для подкласса UICollectionViewController делает это автоматически). Я полагаю, что когда я это делаю, ячейка, созданная на основе идентификатора повторного использования, не связана с той, что находится в доске объявлений, поэтому выходы не подключены. – neal

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