• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 在 UITableView 的节页脚中添加一个按钮和文本

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:12:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试向 UITableView 中的节页脚添加一个可点击的按钮以及一些文本。我想获得与 iOS 设置应用程序完全相同的结果(如屏幕截图中的“了解更多...”按钮)。

有人知道苹果是怎么做到的吗?

enter image description here

编辑

抱歉,我添加的屏幕截图可能有点误导,因为我在按住按钮以使其更加突出时。这就是页脚实际的样子:

enter image description here

我尝试实现 titleForFooterInSection,然后将手势识别器添加到 willDisplayFooterView 中的标准页脚标签,但在初始调用时标签为 nil。我不确定这是否是一个好方法..

override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
    return NSLocalizedString("This is some random text.", comment: "") + NSLocalizedString("Refresh", comment: "")
}

override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {

    guard let label = view.subviews[1].subviews.first as? UILabel else {
        return
    }
    let text = label.text!
    let underlineAttriString = NSMutableAttributedString(string: text)
    let range = (text as NSString).range(of: NSLocalizedString("Refresh", comment: ""))
    underlineAttriString.addAttribute(.foregroundColor, value: UIColor.blue, range: range)
    label.attributedText = underlineAttriString
    view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(refreshTapped)))
}



Best Answer-推荐答案


Jsut 使用 viewForHeaderInSection

 override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 150
    }
    override func tableView(_ tableView: UITableView, viewForFooterInSection  section: Int) -> UIView? {

        let header  = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 150));

            header.backgroundColor = UIColor.groupTableViewBackground
        let label = UILabel.init(frame: CGRect.init(x: 10, y: 10, width: tableView.frame.width-20, height: 100))
        label.text = "I tried using your code, but the footer doesn't look like the one from my screenshot. Here's what I got: Screenshot I usually work with storyboards and xibs so I don't really know how to align the text and button"
        label.numberOfLines = 4
        header.addSubview(label)

        let button = UIButton.init(frame: CGRect.init(x: ((tableView.frame.width-100) / 2), y: 90, width: 100, height: 40))
        button.setTitle("LoadMore...", for: UIControlState.normal)
        button.titleLabel?.font = UIFont.systemFont(ofSize: 12)
        button.setTitleColor(.black, for: UIControlState.normal)
        button.backgroundColor = .white
        button.clipsToBounds = true
        button.layer.cornerRadius = 20
        header.addSubview(button)

        return header

    }

关于ios - 在 UITableView 的节页脚中添加一个按钮和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50607419/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap