gpt4 book ai didi

ios - 在 UITableView Footer 中动态设置和调整标签大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:38:01 27 4
gpt4 key购买 nike

在我的应用程序中,当我选择一个单元格时,我会动态更新表格 View 的页脚文本。不幸的是,我这样做的方式似乎改变了我的 UIView 中的 UILabel 的框架。例如,当我点击一个单元格时,我的标签的宽度变成了 950 到 1200 之间的东西。实际上宽度应该(最多)是 View 的宽度。这是我的代码:

def tableView(tableView, viewForFooterInSection:section)
(section != (self.sections.count - 1)) ? footer_view : nil
end

def tableView(tableView, heightForFooterInSection: section)
if section != (self.sections.count - 1)
footer_label.frame.size.height + 20.0
else
1.0
end
end

def tableView(tableView, didSelectRowAtIndexPath: indexPath)
tableView.beginUpdates
footer_label.text = "Details: #{updated_details}"
footer_label.sizeToFit
tableView.endUpdates
end


def footer_view
@footer_view ||= UIView.alloc.initWithFrame(CGRectZero).tap do |fv|
fv.addSubview(footer_label)
end
end

def footer_label
@footer_label ||= UILabel.alloc.initWithFrame(CGRectZero).tap do |pl|
pl.frame = CGRect.new(
[15, 10],
[self.view.frame.size.width - 30, self.view.frame.size.height]
)
pl.font = UIFont.preferredFontForTextStyle(UIFontTextStyleCaption2)
pl.numberOfLines = 0
pl.lineBreakMode = NSLineBreakByWordWrapping
pl.text = ""
pl.sizeToFit
end
end

我猜调用 sizeToFit 是问题的一部分?

最佳答案

我以为我已经试过了,但也许我的订单被取消了。无论哪种方式,我通过在 beginUpdates/endUpdates 中再次设置页脚框架来解决它:

tableView.beginUpdates
frame = footer_label.frame
footer_label.text = "Plan Details: #{updated_details}"
frame.size.width = self.view.frame.size.width - 30
footer_label.frame = frame
footer_label.sizeToFit
tableView.endUpdates

关于ios - 在 UITableView Footer 中动态设置和调整标签大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com