在TableCell swift中的一个TextLabel中为不同的行添加不同的对齐方式和字体大小

时间:2016-03-11 19:32:37

标签: xcode swift text-alignment tablecell nsmutableattributedstring

所以我试图在iOS中实现一个简单的英语到波斯语词典

我希望在一个表格单元格中包含这两个单词,问题是英语是L&gt; R而波斯语是R> L,我也想让波斯语单词更大一些。< / p>

我创建了一个AttributedMutableString,我认为我放下了所有正确的值,但它看起来有问题,因为它没有正确呈现。

代码:

cell.textLabel?.numberOfLines = 0


var myString = "\(englishConvo[indexPath.row])\n\(farsiConvo[indexPath.row])"
var mutableString = NSMutableAttributedString()

var lenOfLang1 = englishConvo[indexPath.row].characters.count
var lenOfLang2 = farsiConvo[indexPath.row].characters.count

let increaseFontSize = UIFont(name: (cell.textLabel?.font.fontName)!, size: (cell.textLabel?.font?.pointSize)! + 5)

let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.alignment = NSTextAlignment.Right

mutableString = NSMutableAttributedString(string: myString)

mutableString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSRange(location: lenOfLang1 + 1, length: lenOfLang2))

mutableString.addAttribute(NSFontAttributeName, value: increaseFontSize!, range: NSRange(location: lenOfLang1 + 1, length: lenOfLang2))


cell.textLabel?.attributedText = mutableString

enter image description here

如果我使用此代码转换为字符串,这就是我得到的

cell.textLabel?.text = String(mutableString)

enter image description here

任何想法/想法都会受到超级赞赏

1 个答案:

答案 0 :(得分:1)

表格单元格的布局为您提供了两个标签(文字和细节),为什么不使用它?例如,在我的语言应用程序中,我在文本标签中显示拉丁文字,在详细信息标签中显示英文翻译。你可以轻松地用波斯语和英语做同样的事。

enter image description here