菜鸟教程小白 发表于 2022-12-13 09:36:13

ios - UITableView 部分标题更改当前标题的样式


                                            <p><p>有没有人知道当 UITableView 在 Swift 中滚动时访问和更改 UITableView 中 CURRENT 节标题的样式的内置方法或自定义方式(样式纯)。 </p>

<p>我的页眉预设样式是:</p>

<pre><code>override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView //recast your view as a UITableViewHeaderFooterView
    header.textLabel.font = UIFont(name: &#34;HelveticaNeue-CondensedBold&#34;, size: 14)
    header.contentView.backgroundColor = UIColor.groupTableViewBackgroundColor()
    header.textLabel.textColor = UIColor.grayColor()
}
</code></pre>

<p>具体来说,我想在 View 滚动时将当前节标题的标题背景颜色更改为黑色,并将文本颜色更改为白色。其他表头的样式保持预设样式。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在我当前的应用程序中:</p>

<pre><code>override public func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -&gt; UIView?
{
    let view: UIView
    if let _view: UIView = tableView.headerViewForSection(section)
    {
      view = _view
    } else {
      let dxOffset: CGFloat = 16.0
      view = UIView(frame: CGRectMake(dxOffset, 0, tableView.frame.size.width - dxOffset, TableViewViewsHeight.sectionHeight))
    }

    // create our label
    let label: UILabel = UILabel(frame: view.frame)
    label.textColor = UIColor.appEmptyTextColor()
    label.text = &#34;\(self.letters)&#34;
    label.font = UIFont.systemFontOfSize(UIFont.smallSystemFontSize() + 4.0)

    // create the separator frame
    var separatorFrame: CGRect = view.frame
    separatorFrame.size = CGSizeMake(separatorFrame.size.width, 1.0)
    separatorFrame.offset(dx: 0.0, dy: view.frame.size.height - 1.0)

    // create the separator
    let imageView: UIImageView = UIImageView(frame: separatorFrame)
    imageView.backgroundColor = UIColor.appEmptyGolfTrainingTextColor()
    imageView.alpha = 0.4

    // add subviews
    view.addSubview(label)
    view.addSubview(imageView)

    // setup the view
    view.backgroundColor = UIColor.whiteColor()

    return view
}
</code></pre>

<p>这会创建一个带有白色背景的标题、一个分隔符和一个包含字母的标签。</p>

<p>您应该使用 <code>func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?</code> 来更改节标题的外观。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UITableView 部分标题更改当前标题的样式,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31821897/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31821897/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UITableView 部分标题更改当前标题的样式