ios - 为什么在 TextView 中自动换行?

标签 ios swift textview line break

我正在尝试制作自定义表格单元格。我在我的单元格内的 View 中添加了一个文本字段并放入了一些文本。但有时里面的文本会随便换行。我认为这是文本字段的问题所以我用 textView 替换但问题仍然存在......有什么想法吗?

这里有一张图片:

enter image description here

如你所见,他们得到了不同的换行符,而不是随意地适应整行,而是换行并开始新的一行

这是我在 TextView 中放置文本的代码:

var dataArray = [1 : "Università di Messina Università di Messina Università Università di Messina Università Università di Messina Università di Messina Università Università di Messina Università niversità di Messina orem ipsum dolo Lorem ipsum dolo Lorem ipsum dolo Lorem ipsum dolo Lorem ipsum dolo " ,2 : "Università degli studi di Giurisprundeza di Bologna di Roma",3 :"Università di Messina Università di Messina Università Università di Messina Università Università di Messina Università di Messina Università Università di Messina Università niversità ", 4 : "Università degli studi di Giurisprundeza di Bologna di Roma",5 :"Università di Messina Università di Messina Università Università di Messina Università Università di Messina Università di Messina Università Università di Messina Università niversità ",6 : "Università degli studi di Giurisprundeza di Bologna di Roma",7 :"Università di Messina Università di Messina Università Università di Messina Università Università di Messina Università di Messina Università Università di Messina Università niversità "]

var nomeArray = [1 : "asdarar awraw e awrawr awrawr hanno commentato questo elemento dsa asdasd" ,2 : "asdarar awraw e awrawr awrawr hanno commentato questo elemento dsa asdasd",3 :"asdarar awraw e awrawr awrawr hanno commentato questo elemento dsa asdasd",4 :"asdarar awraw e awrawr awrawr hanno commentato questo elemento dsa asdasd",5 : "Gianluca Materia e Davide Iuffrida hanno commentato questo elemento dsa asdasd " ,6 : "dauwdga awitawht awtiawt awitawhot awitahwot awiotha awaiaw awruhatio awitahoiwtahowtoaiwthoiawoitagiotiwagotagotawgiotaogitoasitvai",7 : "Gianluca Materia e Davide Iuffrida hanno commentato questo elemento"]

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! customCell

    let yPositionHeader = cella.headerPost.frame.origin.y
    let heightHeader = cella.headerPost.frame.height

    let name = Array(nomeArray.values)[indexPath.row]
    cell.proprietario?.text = name

    cell.proprietario?.textAlignment = NSTextAlignment.Left;
    cell.proprietario?.font = UIFont.systemFontOfSize(13.0);
    cell.proprietario?.sizeToFit()

    let text = Array(dataArray.values)[indexPath.row]
    cell.miaLabel?.text = text
    cell.miaLabel?.frame.origin.y = yPositionHeader + heightHeader + 30

    cell.miaLabel?.numberOfLines = 0
    cell.miaLabel?.textAlignment = NSTextAlignment.Left;
    cell.miaLabel?.font = UIFont.systemFontOfSize(13.0);

    cell.miaLabel?.sizeToFit()

    let heightLabel = cell.miaLabel.frame.height
    let yPositionLabel = cell.miaLabel.frame.origin.y

    cell.azioniPost.frame.origin.y = yPositionLabel + heightLabel + 30

    let heightActionP = cella.azioniPost.frame.height
    let yPositionAzioniPost = cella.azioniPost.frame.origin.y

    cella.separatorPost.frame.origin.y = yPositionAzioniPost + altezzaAzioniPost 

    let heightSeparatorPost = cella.separatorPost.frame.height

    tabella.rowHeight = altezzaLabel + heightHeader + heightActionBar + heightSeparatorPost + 65
    return cella
}

class customCell: UITableViewCell
{
@IBOutlet weak var headerPost: UIView!
@IBOutlet var miPiace: UIButton?
@IBOutlet var Condividi: UIButton?
@IBOutlet weak var miaLabel: UILabel!
@IBOutlet weak var azioniPost: UIView!

@IBOutlet weak var proprietario: UITextView!
@IBOutlet weak var nomeCondividente: UILabel!
@IBOutlet weak var separatorPost: UIView!
}

编辑: enter image description here

最佳答案

这就是Auto Layout是为了。

首先,UILabel 非常适合您的用例,您不需要 UITextViewUITextViewUILabel 可以显示多行文本,你只需要将它的 numberOfLines 属性设置为 0 并将它的 Line Break Mode 设置为 Word Wrap

在您设计原型(prototype)单元的 Storyboard 中(或在单元的 xib 中),我猜您没有为 UILabel 的宽度设置任何限制。这意味着 Interface Builder 将使用 Storyboard中的 UILabel 默认宽度,这并不总是意味着所有设备上的全屏宽度。

关于ios - 为什么在 TextView 中自动换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35686719/

相关文章:

ios - 在 Swift 中获取坐标 (x,y) 处 UILabel 的值

ios - 从 CocoaPods 资源包加载图像

objective-c - 在自定义 UITableViewCell 上实现 UIWebView

ios - iOS 13 beta 外部屏幕上的 OverscanCompensation

ios - 如何使用 Swift 检测和更改 ios 应用程序语言?

ios - 如何使用prepareForDeletion快速删除CoreData中的照片?

java - 具有多种颜色和事件的 textView 中的可点击文本

ios - 为iphone应用程序添加ipad界面

android - Android 中 getTextView 的 NullPointerException

android - (TextView)findbyid 使应用程序 Android 崩溃。