【发布时间】:2014-04-12 15:18:18
【问题描述】:
我有一个方法可以根据 UITextView 的内容设置 UIScrollView 和 UITextView 的高度。我意识到,当从 viewWillAppear 而不是从 viewDidLoad 调用方法时,textview 和 scrollview 都正确调整了大小(textview 没有从 viewDidLoad 正确调整大小,但它是滚动视图)。
//In View1
-(void) setHeight
{
NSLog(@"Set height");
CGRect frame = descriptionTextView.frame;
frame.size.height = descriptionTextView.contentSize.height;
descriptionTextView.frame = frame;
if([[UIScreen mainScreen] bounds].size.height == 568) //iPhone 4inch
{
totalHeight = 380+frame.size.height;
[self.mainScrollView setContentSize:CGSizeMake(320,totalHeight)];
}
else{
totalHeight = 250+frame.size.height;
[self.mainScrollView setContentSize:CGSizeMake(320,totalHeight)];
}
}
问题是我创建了一个自定义标签栏菜单,其中 UIView 是一个占位符。我第一次执行 segue 时它可以工作,但如果我返回并再次按下选项卡,则不会,因为 viewWillAppear 和 viewDidAppear 没有被调用。为什么不叫?我怎样才能强迫他们被召唤?
//In CustomTabBarController
-(void) selectTab{
self.isLoaded = YES;
self.activity_indicator.hidden = YES;
if ([self.selectedButton isEqualToString: @"view1"])
[self performSegueWithIdentifier:@"sg_view1" sender:self];
else if ([self.selectedButton isEqualToString:@"view2" ])
[self performSegueWithIdentifier:@"sg_view2" sender:self];
else if ([self.selectedButton isEqualToString:@"view3" ])
[self performSegueWithIdentifier:@"sg_view3" sender:self];
}
【问题讨论】:
标签: ios view viewdidload viewwillappear viewdidappear