【问题标题】:Text breaking onto next line in before end of line of UITextView when rotated旋转时,文本在 UITextView 行尾之前中断到下一行
【发布时间】:2018-06-15 23:16:46
【问题描述】:

我试图创建一个文本视图,旋转它并在其中显示一些文本。我可以创建和旋转 UITextView,但文本在我的 UITextView 中的行尾之前中断到下一行。

    let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 300, height: 200))
    textView.transform = CGAffineTransform(rotationAngle: .pi / 2)
    textView.text = "This is some long sample text to show the issue I am facing.  Notice that the text is broken onto the next line well before the end of the UITextView."
    
    textView.backgroundColor = .red
    textView.center = view.center
    
    view.addSubview(textView)

问题:


确定问题

但是,如果我不旋转 textview(通过从上面注释掉以下行),文本不会在 UITextView 结束之前中断到下一行。所以,这个问题似乎是由旋转图像引起的,但我不明白为什么或如何解决这个问题。

textView.transform = CGAffineTransform(rotationAngle: .pi / 2)

为什么文本仅在旋转时才在 UITextView 中间中断到下一行,如何解决此问题?

【问题讨论】:

    标签: ios swift rotation uitextview cgaffinetransform


    【解决方案1】:

    您可以通过执行以下操作来防止此问题:

    1. 创建新视图 (myView)
    2. 创建文本视图 (myTextView)
    3. 将 myTextView 添加到 myView
    4. 旋转我的视图

    // create a new view
    let myView = UITextView(frame:CGRect(x: 0, y: 0, width: view.frame.height-200, height: view.frame.width-200)) // this frame will have 100px margin on the top & bottom as well as on the left & right once rotated
    
    // create a new textview
    let myTextView = UITextView(frame:CGRect(x: 0, y: 0, width: scrollOutlet.frame.height-messageMarginTop*2, height: scrollOutlet.frame.width-messageMarginLeft*2))
    myTextView.text = "This is some long sample text to show the resolved issue. Notice that the text will no longer be broken onto the next line before the end of the UITextView.. Enjoy!"
    
    // add the new text view to the myView
    myView.addSubview(myTextView)
    
    // rotate the myView
    myView.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
    
    // center myView in ViewController's view
    myView.center.x = view.center.x
    myView.center.y = view.center.y
    
    self.view.addSubview(myView)
    

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 2014-02-05
      • 1970-01-01
      • 2015-02-14
      • 2012-01-18
      • 2012-03-06
      • 1970-01-01
      • 2011-09-18
      • 2020-10-18
      相关资源
      最近更新 更多