【发布时间】:2014-05-20 07:09:36
【问题描述】:
我正在尝试创建一个高度动态增加的UITextView。
有一个UIView 可以将此UITextView 与UIButton 分组。
我已经为UITextViewTextDidChangeNotification 通知添加了一个观察者到NSnotificationCenter。
根据当前点击文字的高度,我新建一个CGRect:
CGRect newRect = [contentTextView.text boundingRectWithSize:CGSizeMake(222, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:font} context:nil];
然后,我改变当前UIView的大小:
CGRect tmp = commentView.frame;
CGRect fitRectForView = CGRectMake(tmp.origin.x, tmp.origin.y - abs(newRectH - commentView.frame.size.height), tmp.size.width, newRect.size.height);
commentView.frame = fitRectForView;
最后,我改变了UITextView的高度:
CGRect fitRectForTextView = CGRectMake(contentTextView.frame.origin.x, contentTextView.frame.origin.y, contentTextView.frame.size.width,newRectH);
contentTextView.frame = fitRectForTextView;
这是我的contentTextView变量在拟合前后的原点和大小的日志:
//Before
contentTextView origin : 0.000000 ; 0.000000
contentTextView size : 33.000000 ; 251.000000
//After
contentTextView origin : 0.000000 ; 0.000000
contentTextView size : 84.000000 ; 251.000000
通过这个截图,你可以看到只有我的commentView 的高度在变化。
我在send 按钮上设置了一个约束,以使其保持在UIView(commentView)的底部,但它没有效果。
我找不到我的错误。
这是我的第一个来源:create-a-multi-line-uitextfield
【问题讨论】:
标签: ios objective-c view uiview uitextview