[英]Adjust UILabel according to the change in height of UITextview
我是iOS開發的新手
當UITextView動態更改其高度(例如,用戶在UITextView中輸入多條線)時,如何相對於UITextView的高度調整UILabel位置(位於uitextview下方)
after text entered by user
如果您不使用自動版式,則可以這樣做
CGRect rect = self.lbl.frame;
rect.origin.y = self.txtVw.frame.origin.y + self.txtVw.frame.size.height;
self.lbl.frame = rect;
或者,如果您確實使用自動布局,則可以繼承UITextView的子類,並在其中重寫幾個方法,如下所示:
- (void) layoutSubviews
{
[super layoutSubviews];
if (!CGSizeEqualToSize(self.bounds.size, [self intrinsicContentSize])) {
[self invalidateIntrinsicContentSize];
}
}
- (CGSize)intrinsicContentSize
{
CGFloat boundWidth = [[UIApplication sharedApplication] keyWindow].frame.size.width;
boundWidth = MIN(boundWidth, self.bounds.size.width);
CGSize intrinsicContentSize;
intrinsicContentSize = [self sizeThatFits:CGSizeMake(boundWidth, FLT_MAX)];
return intrinsicContentSize;
}
不要忘記在Interface Builder中為文本視圖分配您的類,當然還要正確設置所有其他約束。 我想,我前段時間已經在StackOverflow某個地方找到了該解決方案,很抱歉無法提供原始答案的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.