我目前正在开展一个项目,其中 IBOutletCollection 中的按钮各自代表一副扑克牌中的牌。我遇到了一个问题,但是在我添加所有52张卡片的时候,根据 indexOfObject 中的 indexOfObject ,我得到了一个对象超出范围的错误
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *cardButtons;
...
- (IBAction)flipCard:(UIButton *)sender {
[self.game flipCardAtIndex:[self.cardButtons indexOfObject:sender]];
...
}
当我浏览所有按钮时,我发现在IBOutletCollection中,有一些按钮跳过索引。我得到的索引是...... 30,31,32,34 ......所以只有52张牌,我仍然得到像54这样的索引。
即使我只用几张牌重新开始,我也看到它正在跳过索引。
我有没有办法(甚至应该......?)手动操作Outlet Collection中的索引,以便它们都是连续的?或者这些是最好的东西,最好不要找到更好的方法来做到这一点?
答案 0 :(得分:1)
是的,不要在IBOutletCollection上做这种事情。我只在旋转设备时使用IBOutletCollection,并且我有不同的视图(没有自动布局)和相同的按钮,所以只有2个索引。
在你的例子中,你应该使用UICollectionView,你应该在那里找到很好的教程UICollectionView tutorial