自定义表格单元格在iOS6中正常工作但在iOS5中不起作用

时间:2013-02-19 08:32:14

标签: ios uitableview

我有一个在iOS6中正常运行的自定义表格单元格。

在iOS5中,当带有表格的屏幕导航到错误

时,应用程序崩溃
 *** Assertion failure in -[ThemedTableView _createPreparedCellForGlobalRow:withIndexPath:], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableView.m:6072

在以下一行

 self.titleLabel.shadowOffset = CGSizeMake(0.0, 1.0);

在其中一个表格单元格使用的自定义UIButton的awakeFromNib方法中。

似乎在iOS5中,在cellForRowAtIndexPath中创建的一个单元格返回nil,而自定义单元格的方法如 - (id)initWithStyle:(UITableViewCellStyle)样式reuseIdentifier:(NSString *)reuseIdentifier,并且未调用awakeFromNib。

在tableview控制器中我使用

nib = [UINib nibWithNibName:@"AboutYouTextFieldQuestionCell" bundle:nil];
[[self tableView] registerNib:nib forCellReuseIdentifier:kTextFieldQuestionCell];

以下是用于创建单元格的代码

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *questionDict = [self.questions objectAtIndex:indexPath.section];
NSString *questionType = [questionDict objectForKey:@"questiontype"];

if ([questionType isEqualToString:@"textfield"])
{
    AboutYouTextFieldQuestionCell *textCell = [tableView dequeueReusableCellWithIdentifier:kTextFieldQuestionCell];
    textCell.backgroundColor = [UIColor whiteColor];
    textCell.delegate = self;

    NSArray *answersArray = [questionDict objectForKey:@"answers"];
    NSDictionary *questionDictionary = [answersArray objectAtIndex:indexPath.row];
    textCell.questionlLabel.text = [questionDictionary objectForKey:@"questiontitle"];
    NSString *keyString = [questionDictionary objectForKey:@"questionkey"];
    if ([self.aboutYouAnswers objectForKey:keyString]) {
        textCell.tf.text = [[self.aboutYouAnswers objectForKey:keyString] stringValue];
    } else {
        textCell.tf.text = nil;
    }
    return textCell;
}
....

0 个答案:

没有答案