1. 程式人生 > >IOS UITextView內容垂直居中方法

IOS UITextView內容垂直居中方法

- (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]; } }



作者:木頭Lee
連結:http://www.jianshu.com/p/5e4cf8488bfd
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。