UITableViewCell 显示指示器位置

Posted

技术标签:

【中文标题】UITableViewCell 显示指示器位置【英文标题】:TableViewCell disclosure indicator position 【发布时间】:2015-07-12 13:35:27 【问题描述】:

我有一个自定义的 tableviewcell,默认情况下,标准显示指示器垂直位于中心。如何像在 ios 邮件应用中那样垂直移动这个标准披露指示器?

【问题讨论】:

您无法更改披露指示器的位置..只需在单元格中添加一个视图 伊恩的回答允许它垂直移动。 【参考方案1】:

您可以通过子类化您的单元格并在单元格的子视图(代表指示器)中找到 UIButton 并持有对它的引用来调整默认附件的位置。然后,您可以简单地在 layoutSubviews 或您选择的任何地方更新附件按钮的框架,如下所示:

class CellSubclass: UITableViewCell 

    var accessoryButton: UIButton?

    override func awakeFromNib() 
        super.awakeFromNib()
        accessoryType = .DisclosureIndicator
        accessoryButton = subviews.flatMap  $0 as? UIButton .first
    

    override func layoutSubviews() 
        super.layoutSubviews()
        accessoryButton?.frame.origin.y = 8
    

【讨论】:

【参考方案2】:

您不能垂直移动标准披露指示器。

如果你想实现这个功能,那么你需要使用你的自定义单元格并使用显示指示器的图像,然后你可以在你想要放置的任何地方使用按钮设置这个图像。

或者您也可以将视图用作辅助指示器并添加为UITableViewCell的子视图

[cell.contentView addSubview:aView];

您可以在此处阅读更多内容disclosure indicator

【讨论】:

【参考方案3】:

您可以在.xib中将TableViewCell上的Layout Margins修改为Fixed,然后将右边距设置为所需的值。

【讨论】:

以上是关于UITableViewCell 显示指示器位置的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 显示指示器继承 UIButton 的外观

检查表格视图单元格中的部分索引标题

如何在 UI 中显示活动指示器,同时使用文件管理器创建文件

UITableViewCell 中的旋转 UITableView 未显示 initWithFrame: 的位置

UITableviewcell的性能问题

iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局