我是iOS编程的新手。我试图创建使用UICollectionView来显示图像网格。我按照本教程:http://www.youtube.com/watch?v=ijAzOIRhhzA执行了以下步骤:
@interface appViewController : ViewController < UICollectionViewDelegate,UICollectionViewDataSource>
@end
- Set the layout property as "flow" and the scroll direction as horizontal
- Created a xib (view) deleted the default view and placed a UICollectionViewCell and filled it with a UIImage (set the identifier of the UICollectionViewCell to "appCell"
- Created a class (subclassing UICollectionViewCell) and created an outlet for the UIImage
- Class, XIB all named the same - appNameCellCollectionViewCell (.h, .m, .xib)
- In the viewDidLoad of the viewController put the following code:
[self.outletUICollectionView registerNib:[UINib nibWithNibName:@"appCellCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"appCell"];
[self.outletUICollectionView registerNib:[UINib nibWithNibName:@"appCellCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"appCell"];
我知道我应该在视图控制器中将插座的数据源和委托设置为self,但我不确定在哪里设置它。我尝试在视图中执行加载,在第8步代码的上方和下方但没有差异。我得到一个黑色区域而不是UICollectionView。
我检查了UIImage是否存在以及所有内容。我想我错过了什么,请帮助我!!
由于
答案 0 :(得分:1)
黑色区域可能是由于故事板和代码之间没有连接的东西。
如果您无法从故事板中弄清楚,请尝试在代码中设置断点,并检查插座以查看是否为零。
您可以在代码中设置委托和dataSource,但通过故事板设置所有内容会更加清晰。打开故事板的视图控制器,使用⌥⌘6打开Connections Inspector,然后从连接控制拖动到故事板中的视图控制器(或控件)。
除非您有特殊原因,否则您可能会发现使用UICollectionViewController
代替UIViewController
要容易得多。它将为您处理很多事情,并使您的代码更简单。
更新
您尝试使用其他人的代码,而不是iOS新手。只要查看您与我共享的代码,我就可以看到对象没有被正确命名,并且您正在犯错,比如尝试将一种类型的对象分配给另一种类型。
你现在可能正试图同时处理键盘扩展,云,第三方框架和笔尖,并且它不会帮助你了解视图,视图等基础知识控制器,使用Xcode,以及如何连接插座。
我真的建议退一步看看Apple的 Getting Started roadmap。这将有助于您学习Xcode,如何学习 使用故事板,以及如何连接出口和代表。
在您完成Apple的教程之后,想要开始学习
app的想法,试着只关注一个特定的方面。寻找一个
UICollectionViewController
使用集合视图的教程
故事板中的集合视图单元格。 raywenderlich.com有
很多很棒的教程。了解如何加载本地图片
那个项目。忽略笔尖,键盘扩展,从中获取数据
现在是云等。
一旦你理解了这些基础知识,就可以继续学习
UICollectionViewCell
到笔尖,然后获取故事板
使用笔尖的UICollectionView
和UICollectionViewController
。
学习和构建基础知识将使您了解如何将云中的图像加载到集合视图中。
您在评论中现在要求帮助的是视图控制器无法将单元格出列的原因。这是因为代码没有正确连接。这就是为什么我建议学习基础知识,所以你知道如何调试这样的基本内容,理解它崩溃的原因,以及如何解决它。
学习和开发适用于iOS的应用程序是令人愉快的,但我认为如果你在尝试解决涉及键盘扩展和第三方框架的更复杂项目之前掌握基础知识,你就不会感到沮丧。