当前位置: 移动技术网 > IT编程>移动开发>IOS > 笔记:UITextView内容垂直居中方法

笔记:UITextView内容垂直居中方法

2019年04月17日  | 移动技术网IT编程  | 我要评论

奇抗山药片,红旗汽车标志,嘉兴市副书记胡海锋

- (void)contentsizetofit
{
    //先判断一下有没有文字(没文字就没必要设置居中了)
    if([self.textview.text length]>0)
    {
        //textview的contentsize属性
        cgsize contentsize = self.textview.contentsize;
        //textview的内边距属性
        uiedgeinsets offset;
        cgsize newsize = contentsize;
        
        //如果文字内容高度没有超过textview的高度
        if(contentsize.height <= self.textview.frame.size.height)
        {
            //textview的高度减去文字高度除以2就是y方向的偏移量,也就是textview的上内边距
            cgfloat offsety = (self.textview.frame.size.height - contentsize.height)/2;
            offset = uiedgeinsetsmake(offsety, 0, 0, 0);
        }
        else          //如果文字高度超出textview的高度
        {
            newsize = self.textview.frame.size;
            offset = uiedgeinsetszero;
            cgfloat fontsize = 18;

           //通过一个while循环,设置textview的文字大小,使内容不超过整个textview的高度(这个根据需要可以自己设置)
            while (contentsize.height > self.textview.frame.size.height)
            {
                [self.textview setfont:[uifont fontwithname:@"helvetica neue" size:fontsize--]];
                contentsize = self.textview.contentsize;
            }
            newsize = contentsize;
        }
        
        //根据前面计算设置textview的contentsize和y方向偏移量
        [self.textview setcontentsize:newsize];
        [self.textview setcontentinset:offset];
        
    }
}

原理:由于textview是继承自uiscrollview,所以会有contentsize属性。所以可以通过文字内容的高度(也就是contentsize)的高度和textview的高度之间的差值,设置内边距,就相当于把内容居中了。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网