如何将UILabel的文本保留在safeArea中?

卢卡斯

我已经创建了一个自定义UILabel以便能够更改其安全区域,以便文本可以有一些填充并看起来更好,但是在更改了safeArea之后,文本仍然从边缘到边缘一直沿行,并且此处未添加填充我的代码

class customLabel: UILabel {

    override init(frame: CGRect) {
        super.init(frame: frame)
        setUp()

    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }



    override var safeAreaInsets: UIEdgeInsets {
        return UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
    }


    func setUp(){
        lineBreakMode = NSLineBreakMode.byWordWrapping
        numberOfLines = 0
        textColor = UIColor.white
        textAlignment = .center
        layer.cornerRadius = 8
        clipsToBounds = true
        backgroundColor = UIColor.black.withAlphaComponent(0.7)
        font = UIFont.boldSystemFont(ofSize: 20)
        translatesAutoresizingMaskIntoConstraints = false

    }

}

如何将文本保留在新的safeAreaInset中?

谢谢!

彼得·特列季亚科夫(Peter Tretyakov)

safeAreaInsets不应用于文本填充。添加了UIView安全区域”以防止导航栏,标签栏,工具栏等覆盖内容。因此,UIView当您向UIView“安全区域”添加约束时,您可以在子类中覆盖此变量以使其子视图可见但是由于文本中UILabel没有对“安全区域”的限制,所以覆盖此变量没有任何意义。

相反,您需要重写的textRect(forBounds:limitedToNumberOfLines :)方法UILabel

override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
    return bounds.insetBy(dx: 10, dy: 10)
}

insetBy(dx:dy:)方法返回具有的左和右插图dx以及的上和下插图的矩形dy

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将文本框中的文本保留在附加框中?

即使在移动设备中,如何将文本保留在中间?

如何将小数点保留在VB的文本框中输入

如何将所选数据保留在表中?

如何将道具数据保留在Vue中?

如何将LI编号保留在OL中

如何将ID保留在dummyVars()中

如何将特定节点保留在networkx中

如何将动画div保留在容器中

将文本保留在div中

php中的爆炸功能,使用爆炸后如何将数据保留在文本框中?

即使在html / css中调整页面大小时如何将文本保留在屏幕中间

如何将图片保留在左侧,将内容保留在右侧?

提交后如何将数据保留在文本区域内?

如何将枢轴标题文本保留在屏幕中央?

如何将文本保留在div的边界内而不进行剪切?

如何将列转换为数值,同时将失败的列保留在熊猫中

如何将div元素保留在页面底部

如何将图片保留在div内?

如何使用vuex刷新后如何将商品保留在购物车中

如何将Firestore查询中的数字保留在变量中以备将来使用?

如何将取自规则的值保留在变量中并在ANTLR语法中重用?

如何将span标签和类保留在TinyMce中的预代码块中

将文本保留在UITableViewCell内的UITextView中

使用XPath将元素保留在文本中

如何使用VBA在Word中设置文本字体,但将字体保留在公式中?

Kotlin与导航-如何将数据保留在先前的片段中

添加评论后如何将选择保留在评论框中

如何将png文件保留在git中而不进行跟踪?