我有一个分组表。我有这个表的两个规则,在第一个条件下,我需要在页脚中显示漂亮的图片(这是有效的)。在第二个条件中,我需要在页脚中显示一些文本(这会失败)。是否可以在同一个表格中使用titleForFooterInSection
和viewForFooterInSection
?如果我同时在同一部分使用它们,哪一个应该优先?
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
if (section < self.practiceLessonSet.lessons.count) {
if ([[self.practiceLessonSet.lessons objectAtIndex:section] words].count == 1) {
return @"No replies yet. Try the share button?";
}
}
return nil;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
if (self.practiceLessonSet.lessons.count == 0) {
UIImageView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"introPractice"]];
view.contentMode = UIViewContentModeCenter;
return view;
} else
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
if (self.practiceLessonSet.lessons.count == 0)
return 278;
else
// WHAT SHOULD I PUT HERE?
return [super tableView:tableView heightForFooterInSection:section]; // <-- FAILS
}
答案 0 :(得分:1)
是的,您可以同时使用它们。我的猜测是,当你期望它们是:
时,这些条件没有得到满足if (section < self.practiceLessonSet.lessons.count) {
if ([[self.practiceLessonSet.lessons objectAtIndex:section] words].count == 1) {
return @"No replies yet. Try the share button?";
}
}
答案 1 :(得分:0)
正如Kale所说,是的,您应该能够同时使用它们,因此在您的情况下检查导致问题的标题或视图部分是否失败(尝试添加几个日志语句并按照它查看如果他们真的被召唤,他们正在停止的地方)。根据我的经验,如果您同时拥有页脚或页眉的视图和标题,则如果两个视图都具有值,则视图最终会优先。
答案 2 :(得分:0)
只需在UITableViewAutomaticDimension
heightForFooterInSection
即可
<强>目标C 强>:
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection: (NSInteger)section
{
if (self.practiceLessonSet.lessons.count == 0)
return 278;
else
return UITableViewAutomaticDimension;
}
<强>夫特强>:
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
{
if (self.practiceLessonSet.lessons.count == 0) {
return 278
}
return UITableViewAutomaticDimension
}