单个 UITableview 单元格中的多种字体大小 (Swift)
Posted
技术标签:
【中文标题】单个 UITableview 单元格中的多种字体大小 (Swift)【英文标题】:Multiple font sizes in a single UITableview cell (Swift) 【发布时间】:2016-03-30 15:18:56 【问题描述】:我有一个包含多行文本的 UITableviewCell。我试图弄清楚如何使每行具有不同的字体大小。
这是我用来填充表格单元格的代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("eventCell")!
cell.textLabel!.textAlignment = NSTextAlignment.Center
cell.textLabel!.numberOfLines = 0
cell.textLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping
cell.textLabel!.text = self.eventsToday[indexPath.row].eventTitle + "\n" + self.eventsToday[indexPath.row].eventPlaceName
return cell
有没有办法在“\n”换行符后减小字体大小,使标记为“eventPlaceName”的字符串显示为小于标记为“eventTitle”的字符串?
【问题讨论】:
检查这个答案 - ***.com/questions/1417346/… 您可以使用属性字符串作为属性字符串示例,您可以在下面看到enter link description here 【参考方案1】:使用textLabel
对象的attributedText
属性。
使用attributedText
,您可以设置文本格式。
欲了解更多信息,请参阅NSAttributedString
【讨论】:
【参考方案2】:有没有办法在“\n”换行符后减小字体大小所以 标记为“eventPlaceName”的字符串将显示为小于 标记为“eventTitle?”的那个?
这听起来就像您的表格视图单元格需要两个单独的标签:
-
一个用于“事件标题”
一个用于“活动地点”
我的意思是,您可以使用属性字符串,但显然这是两条独立的信息,并且您在此处有一个重复模式。在我看来,两个标签听起来像是最佳实践/不那么令人头疼。
如何添加额外标签:
-
子类
UITableViewCell
(我们在下面的代码中调用自定义子类CustomTableCell
)。
在情节提要中将原型单元的类设置为自定义子类。 还要设置重用标识符(这里我使用了“YourCellIdentifier”)。
忘记原始标签(它不会显示在情节提要中,因此您无法相对于它定位第二个标签);而是向单元格添加 TWO 新标签,并使用自定义单元格子类设置插座。将属性命名(例如)eventTitleLabel
和 eventPlaceLabel
。设置您可能需要的任何布局约束,并配置字体大小、颜色等。
在运行时,像这样设置标签的文本:
let cell = tableView.dequeueReusableCellWithIdentifier("YourCellIdentifier", forIndexPath: indexPath) as! CustomTableCell
// (forced cast shouldn't fail f identifier is registered properly)
cell.eventTitleLabel.text = "Event Title XXXX"
cell.eventPlaceLabel.text = "Event Place YYYY"
return cell
【讨论】:
这看起来可能是最方便的解决方案。不过有一个问题——如何在单元格中创建一个新标签?我应该在主情节提要中制作它,然后将其连接到视图控制器还是有一行代码可以解决这个问题? 查看我编辑的答案,了解如何实现这一目标的详细信息。以上是关于单个 UITableview 单元格中的多种字体大小 (Swift)的主要内容,如果未能解决你的问题,请参考以下文章