PFQueryTableViewController 忽略故事板中自定义 PFTableViewCell 的大多数设置
PFQueryTableViewController ignores most settings of a custom PFTableViewCell in storyboard
我有一个 TableViewController,它是 PFQueryTableViewController
的子类。
它显示作为 PFTableViewCell
子类的动态 TableViewCells,并具有 2 个类型为 IBOutlet UILabel
.
的自定义属性
两者都在故事板中设置,如下图。
不同视图的背景已经着色以使视图可见。请注意,两个标签的文字大小设置相同,12pt。
在 tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
中,我通过
设置了两个标签
cell.dateLabel.text = stringFromDate; // the date is set earlier
cell.activityLabel.text = @"Test";
现在我运行应用程序时,显示如下图:
请注意 1) 文本书写正确,但 2) 背景未着色,3) 只有日期字段的文本大小为 12 磅,而 activity 标签的大小为 17 磅,3) activity 标签的高度与故事板中定义的不同,而是更小。
当然,单元格标签设置正确并且“正确的”单元格出队(否则我无法访问自定义属性)。此外,属性链接正确(否则文本将无法正确显示)。
在我的 table 视图控制器中,我没有任何覆盖 table 视图单元的故事板设置的委托方法。
所以我的问题是:
为什么我的 table 视图单元格的情节提要设置仅部分使用(第一个标签的文本大小)但大部分被忽略(第二个标签的背景颜色、高度和文本大小)标签),我需要做什么才能使其正常工作?
问题已解决!似乎是一个 Xcode6 错误:
因为我的印象是使用了旧版本的故事板,所以我从模拟器中删除了该应用程序,然后重新启动了该应用程序。该应用程序立即崩溃并出现错误“无法在捆绑包 NSBundle 中找到名为 'Main' 的故事板...”。
然后我意识到项目导航器中有2个引用同一个故事板,并删除了一个。
我查看了错误消息中给出的文件路径,发现故事板不再包含在目标中。
为了将它再次包含在目标中,我在项目导航器中将故事板作为源代码打开——然后才向身份检查器显示该文件的属性(当像往常一样将其作为界面构建器文件打开时,身份检查器 window 为空)。事实上,目标成员资格复选框未被选中。再次检查后,崩溃不再发生,并且使用了正确的 table 视图单元格设置。
所以问题是模拟器使用了旧版本的故事板,因为新的故事板没有包含在目标中,所以旧的故事板没有更新。
我有一个 TableViewController,它是 PFQueryTableViewController
的子类。
它显示作为 PFTableViewCell
子类的动态 TableViewCells,并具有 2 个类型为 IBOutlet UILabel
.
的自定义属性
两者都在故事板中设置,如下图。
不同视图的背景已经着色以使视图可见。请注意,两个标签的文字大小设置相同,12pt。
在 tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
中,我通过
cell.dateLabel.text = stringFromDate; // the date is set earlier
cell.activityLabel.text = @"Test";
现在我运行应用程序时,显示如下图:
请注意 1) 文本书写正确,但 2) 背景未着色,3) 只有日期字段的文本大小为 12 磅,而 activity 标签的大小为 17 磅,3) activity 标签的高度与故事板中定义的不同,而是更小。
当然,单元格标签设置正确并且“正确的”单元格出队(否则我无法访问自定义属性)。此外,属性链接正确(否则文本将无法正确显示)。
在我的 table 视图控制器中,我没有任何覆盖 table 视图单元的故事板设置的委托方法。
所以我的问题是:
为什么我的 table 视图单元格的情节提要设置仅部分使用(第一个标签的文本大小)但大部分被忽略(第二个标签的背景颜色、高度和文本大小)标签),我需要做什么才能使其正常工作?
问题已解决!似乎是一个 Xcode6 错误:
因为我的印象是使用了旧版本的故事板,所以我从模拟器中删除了该应用程序,然后重新启动了该应用程序。该应用程序立即崩溃并出现错误“无法在捆绑包 NSBundle 中找到名为 'Main' 的故事板...”。
然后我意识到项目导航器中有2个引用同一个故事板,并删除了一个。
我查看了错误消息中给出的文件路径,发现故事板不再包含在目标中。
为了将它再次包含在目标中,我在项目导航器中将故事板作为源代码打开——然后才向身份检查器显示该文件的属性(当像往常一样将其作为界面构建器文件打开时,身份检查器 window 为空)。事实上,目标成员资格复选框未被选中。再次检查后,崩溃不再发生,并且使用了正确的 table 视图单元格设置。
所以问题是模拟器使用了旧版本的故事板,因为新的故事板没有包含在目标中,所以旧的故事板没有更新。