私のプロジェクトでは、iPhone 4 と iPhone 5 の両方でアプリを適切にスケーリングするために AutoLayout を有効にしました。そうすることですべてうまくいきましたが、対処方法がわからない新しい問題が見つかりました。
私のプロジェクトでは、ブール値がyesかnoかをチェックする通常のメソッドがあります.yesの場合、インターフェイスはインターフェイスにボタンを追加し、tableViewを現在の状態に保つ必要があります。しかし、メソッドが no を返した場合、ボタンは消えて、tableView の高さが高くなります! ボタンのすべてが正常に機能しますが、何らかの理由でAutoLayoutの使用を開始した後、tableViewの高さを上げるためのコードが機能しなくなりました(以前は機能していました)。
AutoLayout を使用している場合でも、tableView の高さを高くするにはどうすればよいですか? これが私のコードです:
- (void)viewWillAppear:(BOOL)animated
{
NSString *bookName = [self getCurrentBookName];
if([self isBlank:bookName])
{
[self.currentBookLabel setText:NSLocalizedString(@"LabelNoBookChosen", nil)];
}
else
{
[self.currentBookLabel setText:[self getCurrentBookName]];
}
[super viewWillAppear:animated];
if([self isAppLicensed] != YES) <------------------THIS IS WHERE I CHECK THE BOOLEAN METHOD!
{
[actionAppStore setHidden:TRUE];
CGRect framez = [tableView frame]; <------------------ THIS CODE IS NOT WORKING ANY LONGER!
[tableView setFrame:CGRectMake(framez.origin.x, framez.origin.y, framez.size.width, framez.size.height+77)];
}
else
{
[actionAppStore setHidden:FALSE];
}
}