2013-03-16 71 views
1

在我的應用程序的detailview(滾動視圖)我有一個UILabel獲取將有大約1000個單詞的文本。調整大小的UILabel捕捉到初始大小

我想調整它,因此標籤配合 - 能正常工作至今

-(void) viewDidAppear:(BOOL)animated { 
NSString *message = storycontent.text; 
CGSize maximumLabelSize = CGSizeMake(280,5000); 
CGSize expectedLabelSize = [message sizeWithFont:storycontent.font constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping]; 
CGRect newFrame = storycontent.frame; 
newFrame.size.height = expectedLabelSize.height; 
storycontent.frame = newFrame; 
} 

當導航到的DetailView預期的標籤大小。 現在奇怪的事情是:我想向下滾動UILabel對齊回到初始大小,以便只有第一個單詞是可見的。

我該怎麼做才能避免這種行爲?

更新: 當我刪除標籤,並放入一個新的它可以正常工作。奇怪的行爲開始時,我改變字體大小爲17時的其他東西。

+0

而不是採取一個標籤採取textView – 2013-03-16 13:25:53

+0

我通過textview獲得相同的行爲。其調整大小的對象的初始高度,當我開始滾動:( – alexdd55 2013-03-16 13:31:00

+0

可以請你登錄你的newFrame和storyContent幀 – 2013-03-16 13:32:59

回答

0

我現在的解決方案(或解決方法)現在是停用「使用Autolayout」(thx到Mark Kryzhanouski),它解決了捕捉問題。

隨着不具有自動佈局了滾動不會自動調整大小,所以我說

@property (retain, nonatomic) IBOutlet UIScrollView *scroller; 

,並計算出一個新的框架尺寸爲它的內容的大小,我已經從上面知道,再加上靜態的內容,這將是總是顯示。

NSString *message = storycontent.text; 
CGSize maximumLabelSize = CGSizeMake(280,5000); 
CGSize expectedLabelSize = [message sizeWithFont:storycontent.font constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping]; 

[scroller setContentSize:CGSizeMake(280,expectedLabelSize.height + 400)]; 

也許有一種方法可以用「Use Autolayout」激活嗎?!