我正在转换到iOS 5和故事板.当我有一个默认单元格样式的表视图时,一切正常.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifierFromStoryboard"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyIdentifierFromStoryboard"];
}
return cell;
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了删除"if(cell == nil)"块的示例.但是,如果我把它拿出来,我的应用程序会崩溃并显示以下消息:"UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:".这不是问题,因为它的工作原理如上所示.
我的问题是我想为单元格使用自定义样式,因此不能使用initWithStyle.如何初始化我在故事板上设计的自定义单元格?
旧的5前应用程序有一个笔尖和类使用这样的东西,但现在我正在使用故事板.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomTableCell *cell = (MyCustomTableCell *) [tableView dequeueReusableCellWithIdentifier:@"MyCustomIdentifier"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomTableCell" owner:self options:nil];
cell = (MyCustomTableCell *) [nib objectAtIndex:0];
}
return cell;
}
Run Code Online (Sandbox Code Playgroud) 在研究iOS6的新功能时,我遇到了一个关于UICollectionView的问题.
我目前正在使用Flow布局测试它,滚动方向设置为水平,滚动和分页启用.我将其大小设置为与我的自定义单元格完全相同,因此它可以一次显示一个,并通过向侧面滚动,用户将看到其他现有单元格.
它完美地运作.
现在我想将UIPageControl添加到我创建的集合视图中,这样就可以显示哪个单元格可见以及有多少单元格.
构建页面控件非常简单,定义了frame和numberOfPages.
我所遇到的问题,如问题标题,是如何在集合视图中获取当前可见的单元格,因此它可以更改页面控件的currentPage.
我已经尝试过委托方法,比如cellForItemAtIndexPath,但它是为了加载单元格而不是显示它们.当一个单元格不再显示时,didEndDisplayingCell触发,这是我需要的相反事件.
它似乎-visibleCells和-indexPathsForVisibleItems,集合视图方法,对我来说是正确的选择,但我碰到了另一个问题.什么时候触发它们?
在此先感谢,希望我能让自己清楚明白,这样你们才能理解我!
我的应用程序在iPhone和模拟器上使用iOS 6工作得非常好,但是当我尝试在iOS 5的iPhone /模拟器上运行应用程序崩溃
错误是:
因未捕获的异常'NSInvalidUnarchiveOperationException'而终止应用程序,原因:'无法实例化名为NSLayoutConstraint的类'
我没有在Interface Builder Document上使用Autolayout.
谁能帮助我?
未检查Autolayout