要做成這種效果圖
(1)button真的在計算高度的時候很有問題,就算你能知道寬度,自動換行的設置,但是高度就是不對。 ---------------pass
(2)於是我換成了label,高度可以很好的計算出來了,但是內間距是需要重新去畫的,需要你自己添加方法去計算,網上的方法試過了,並不正確!!! ---------------pass
(3)我最後使用了TextView,設置不可編輯,不可選擇!!!!高度可以設置,內間距也是可以直接設置!!!完美~~~~
附上代碼:
-(void)setUpUIComponent{
[self.emailNameTextView setText:self.enterEmail];
self.emailNameTextView.layer.masksToBounds = YES;
self.emailNameTextView.layer.cornerRadius = self.emailNameTextView.bounds.size.height/2;
[self.emailNameTextView setTextContainerInset:UIEdgeInsetsMake(5, 10, 5, 33)]; //內間距
CGFloat needHeight = [self neededHeightForTextComponent:self.emailNameTextView width:234]; //設置高度
[self.emailNameTextViewHeight setConstant:needHeight];
}
#pragma mark - Calculate height
- (CGFloat)neededHeightForTextComponent:(id)textComponent width:(CGFloat)width
{
CGSize neededSize = [textComponent sizeThatFits:CGSizeMake(width, CGFLOAT_MAX)];
return ceilf(neededSize.height);
}