所以我有一個UILabel從數據庫中獲取動態數量的內容。 標籤獲得的內容越多,標籤獲得的高度就越高。如何製作動態高度UILabel將其他元素推出?
對於這個效果我已經使用這個代碼:
NSString *infoztext = [dataBase valueForKey:@"infos"];
infoz.text = infoztext;
CGSize maxSize = CGSizeMake(320, 410);
CGRect labrect = [infoztext boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:infoz.font} context:Nil];
infoz.numberOfLines = 0;
infoz.frame = CGRectMake(23, 594, 274, labrect.size.height);
這就像一個魅力。標籤將根據其收到的內容數量調整其高度。
問題是我的標籤重疊視圖中的所有元素,而不是將它們推開。
我確實已啓用自動佈局但仍然沒有任何反應,但重疊。
如何獲得標籤以推送其他元素而不是重疊它們?
要使自動佈局工作,您需要設置約束條件。你在任何地方設置任何限制嗎? (在Interface Builder或代碼中) – rfj001 2014-10-27 19:11:51
我通常使用Interface Builder。我有我的所有元素,如標籤和UIImageView在一個視圖內的ScrollView內。在那裏我設置了限制。成爲最簡單的方式使ScrollView與自動佈局一起工作。 雖然測試我剛剛選擇了所有的元素,並設置「添加缺少的約束」,但這也沒有幫助我。 – Mariooo 2014-10-28 14:26:03
如果我選擇我的動態標籤下的下一個元素並設置「添加缺少的約束」,結果是我的動態標籤只會調整它自己的高度,直到它到達它下面的元素,這意味着它不會與它重疊,但它也不會推它。它只會調整它自己的高度,直到它到達另一個元素,而不是限制它自己的內容。就像元素阻止標籤調整它自己的高度一樣。 – Mariooo 2014-10-28 14:33:05