SearchTextField 从左到右显示列表

Posted

技术标签:

【中文标题】SearchTextField 从左到右显示列表【英文标题】:SearchTextField display list from left to right 【发布时间】:2017-07-31 07:59:12 【问题描述】:

我正在使用 SearchTextField 窗格来显示预测文本。

https://github.com/apasccon/SearchTextField

以下代码使用显示列表构建表格。

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    var cell = tableView.dequeueReusableCell(withIdentifier: SearchTextField.cellIdentifier)

    if cell == nil 
        cell = UITableViewCell(style: .subtitle, reuseIdentifier: SearchTextField.cellIdentifier)
    

    //cell!.backgroundColor = UIColor.clear
    cell!.backgroundColor = UIColor.red
    cell!.layoutMargins = UIEdgeInsets.zero
    cell!.preservesSuperviewLayoutMargins = false
    cell!.textLabel?.font = theme.font
    cell!.detailTextLabel?.font = UIFont(name: theme.font.fontName, size: theme.font.pointSize * fontConversionRate)




    cell!.textLabel?.textColor = theme.fontColor
    cell!.detailTextLabel?.textColor = theme.fontColor

    cell!.textLabel?.text = filteredResults[(indexPath as NSIndexPath).row].title
    cell!.detailTextLabel?.text = filteredResults[(indexPath as NSIndexPath).row].subtitle
    cell!.textLabel?.attributedText = filteredResults[(indexPath as NSIndexPath).row].attributedTitle
    cell!.detailTextLabel?.attributedText = filteredResults[(indexPath as NSIndexPath).row].attributedSubtitle

    cell!.imageView?.image = filteredResults[(indexPath as NSIndexPath).row].image

    cell!.selectionStyle = .none

    cell!.detailTextLabel?.textAlignment = .right
    cell!.textLabel?.textAlignment = .right



    return cell!

生成一个匹配标题列表作为标签,如图所示

所以我的问题是如何让我的标签从右到左显示数据?

感谢您提供的任何帮助

【问题讨论】:

你想让它对齐吗? 是的。这正是我想要实现的目标 (style: .subtitle 不支持正确的文本对齐,如果您需要使用自定义标签,请将您的样式更改为(style: .Default) 能否请您解释一下如何更改样式以及在哪里更改? 【参考方案1】:

如果你看框架,你可以设置

cell!.detailTextLabel?.textAlignment = .right
cell!.textLabel?.textAlignment = .right
cell!.textLabel?.text = filteredResults[(indexPath as NSIndexPath).row].title
cell!.detailTextLabel?.text = filteredResults[(indexPath as NSIndexPath).row].subtitle
cell!.textLabel?.attributedText = filteredResults[(indexPath as NSIndexPath).row].attributedTitle
cell!.detailTextLabel?.attributedText = filteredResults[(indexPath as NSIndexPath).row].attributedSubtitle

cell!.imageView?.image = filteredResults[(indexPath as NSIndexPath).row].image

cell!.selectionStyle = .none

在 pod 中的 SearchTextField.swift 文件中。

【讨论】:

试过这个。它在代码中。也不起作用,因为标签是动态文本的宽度而不是父单元格,我认为 我认为你应该先设置 textalignment 和 text to label。 不确定我是否理解您提出的解决方案。能否请您发布我需要使用的代码? 没有用。文本可能向右对齐,但标签向左对齐,标签的宽度正是文本值所需的大小。如果标签是单元格的宽度,这可能会起作用,但不确定如何将标签定义为父单元格的宽度 宽度与 textalignment 无关,如果您将 textalignment 设置为 right 以更正标签它应该满足您的要求。

以上是关于SearchTextField 从左到右显示列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使我的文本从左到右突出显示?

无法让 div 在 jQuery 中从左到右设置动画

从左到右基数排序

Tensorflow - 通过跟踪边界框并输出它们从左到右显示排序的预测

如何将 viewPager 的方向反转为从左到右的顺序?

prolog从左到右遍历非标准树