美文网首页
textView换行切换居中显示

textView换行切换居中显示

作者: 小傑 | 来源:发表于2017-11-16 11:15 被阅读37次

自定义个textView,重写下面2个func
外部调用只需要改变textView对应行的高度即可

//换行的时候会调用,而且多次,虽然也会调用setContentOffset,但是最后还是调用它
public override var contentOffset: CGPoint {
    didSet {
        if isContainChangecontentOffsetY {
            if contentOffsetCallBack != nil {
                super.contentOffset = contentOffsetCallBack!(contentOffset)
            }
            else {
                let h = frame.size.height
                //行高
                let lineHeight = font?.lineHeight ?? 17
                //行数
//                    let lineCount = Int((contentSize.height - textContainerInset.top - textContainerInset.bottom) / lineHeight)
                
//                    print(contentSize.height - h > lineHeight)
                
                var offset = contentOffset
                /* 1.当小于最大行数的时候,让textView内容居中显示,
                 偏移量就为(contentSize.height - h) / 2
                 2.大于最大行数,让textView底部稍微空出一点
                 偏移量contentSize.height - h + 2
                 */
                //contentSize.height - h > lineHeight(内容 - 高度 大于 1行的高度说明超过了最大的行数)
                //lineCount <= maxLineCount
                offset.y = contentSize.height - h < lineHeight ? (contentSize.height - h) / 2 : contentSize.height - h + 2
                super.contentOffset = offset
            }
        }
        else {
            super.contentOffset = contentOffset
        }
    }
}

//当行数超过最大的行数的时候,每次改变输入的内容读会调用这个func,这个可不写
public override func setContentOffset(_ contentOffset: CGPoint, animated: Bool) {
    super.setContentOffset(contentOffset, animated: animated)

相关文章

  • textView换行切换居中显示

    自定义个textView,重写下面2个func外部调用只需要改变textView对应行的高度即可

  • android布局属性

    TextView android:scaleType="center" //居中显示 TableLayout an...

  • Andriod问题小结之TextView显示带配置的文字

    1.问题描述 文字带有配置效果或者html效果,比如换行<\br>,在TextView中换行显示并且不显示符号“<...

  • CSS

    居中 Flex 文本溢出显示省略号 不被挤 文字换行

  • android_tips

    文字居中显示问题有两种方法可以设置TextView文字居中在xml文件中设置:android:gravity="c...

  • Android获取TextView显示的字符串宽度

    Android获取TextView显示的字符串宽度 工作上有业务需要判断textview是否换行,我的做法是判断t...

  • 文本文字处理的坑

    多行文字居中 单行,多行都要文字居中 文字换行(行尾对齐显示)正常情况写的换行文字并不会首部和尾部都是对齐,尾部会...

  • setText 换行

    textView 换行是支持"\n"换行符的。 用法是 textView.text=@"你想要输入的文本\n换行后...

  • HTML5基础标签的学习

    h1-h6为块级标签会自动换行 br换行标签 align居中显示 right右对齐 left左对齐 bottom(...

  • Android 回车换行的持久化

    问题发现:从后台获取文字信息的时候,通过抓包发现含有\r\n换行符,显示在TextView上能够正确的换行,但是通...

网友评论

      本文标题:textView换行切换居中显示

      本文链接:https://www.haomeiwen.com/subject/wvclvxtx.html