调整大小的UILabel捕捉到初始大小
问题描述:
在我的应用程序的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时的其他东西。
答
我现在的解决方案(或解决方法)现在是停用“使用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”激活吗?!
而不是采取一个标签采取textView – 2013-03-16 13:25:53
我通过textview获得相同的行为。其调整大小的对象的初始高度,当我开始滚动:( – alexdd55 2013-03-16 13:31:00
可以请你登录你的newFrame和storyContent帧 – 2013-03-16 13:32:59