button,label,textView
要做成这种效果图
(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);
}