ios - 如何防止像UITextView一样截断文本?

标签 ios uikit uilabel uitextview

我有一个UILabel和一个UITextView都具有相同的文本(字符串“SnellRoundhand”,使用Snell Roundhand Bold字体,磅值21)。 UITextView中的文本可以正确显示,但是UILabel的文本在左侧和右侧被切除。如何使标签中的文本正确显示?

一些注意事项:

  • 扩展标签的框架不起作用,因为它可能会解决文本右侧而不是左侧的截断问题。
  • 我不能走便宜的路把文本居中;文本必须保持当前对齐状态。
  • 之所以不能将所有内容都更改为UITextViews,是因为我的应用程序在后台进行了一些处理,并且在实例化UITextView时会崩溃。我希望我可以通过使用UILabel来呈现文本来解决此问题。
  • 最佳答案

    在iOS 6中,UILabel的一个很好的新功能是它支持属性字符串。属性字符串可以包含段落边距。因此,您可以在字符串上添加边距,从而确保标签的边缘和字符串的图形之间有一些额外的空间。

    本书的这一部分包含示例代码,该示例代码为在UILabel中绘制的字符串添加边距:

    http://www.apeth.com/iOSBook/ch23.html#_attributed_strings

    如果要在iOS 6之前的系统上运行,可以将UILabel子类化,以强制从标签的边缘插入文本,如以下代码所示(同样来自我的书):

    - (void)drawTextInRect:(CGRect)rect {
        [super drawTextInRect:CGRectInset(rect, 5.0, 5.0)];
    }
    

    关于ios - 如何防止像UITextView一样截断文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161564/

    相关文章:

    xcode - 如何在堆栈 View 中获取 "unshrink"对象

    ios - 设置UILabel的frame时,是否可以在代码中将其设置到superview的垂直和水平中心?

    ios - UINavigationBar title like Music app

    ios - 如何检测用户是否彼此靠近 - Swift

    ios - 加强 iOS 应用程序传输安全

    iphone - MPMoviePlayerController iO7 问题

    ios - 访问制服的 SKShader 要求是什么?

    objective-c - 可以在 UIPopoverController 中呈现没有 UIViewController 的 UIView 吗?

    ios - 在 Swift 中调整 CAShapeLayer 的大小

    ios - Swift - 来自 URL 的 UILabel