IOS UITextView內容垂直居中方法
阿新 • • 發佈:2019-01-11
- (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
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。