为什么在textview中自动换行?

时间:2016-02-28 18:46:40

标签: ios swift textview line break

我正在尝试自定义表格单元格。我在单元格内部的视图中添加了一个文本字段并放入了一些文本。但有时文本内部会随意进行换行。我认为这是一个文本字段的问题所以我用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

1 个答案:

答案 0 :(得分:2)

这是Auto Layout的用途。

首先,UILabel非常适合您的使用案例,您不需要UITextViewUITextViewUILabel可以显示多行文字,您只需将其numberOfLines属性设置为0,将其换行模式设置为Word Wrap

在您设计原型单元格的故事板中(或在单元格的xib中),我猜你没有为UILabel'设置任何约束。宽度。这意味着Interface Builder将使用您在故事板中拥有的UILabel的默认宽度,这并不总是意味着所有设备上的全屏宽度。