0

UIViewControllerサイズを変更した後、ビューを更新するにはどうすればよいですか?に似た方法が必要reloadDataですUITableViewController

UIViewControllerリロードせずにビューのサイズを変更する他の可能性はありますか?

私のコードは次のとおりです。

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    orientation = toInterfaceOrientation;
    if(orientation==3 || orientation==4)
    {
        heightBoxDimension1 = [GlobalData sharedGlobalData].heightLandscape;
        widthBoxDimension1 = [GlobalData sharedGlobalData].widthLandscapeBig;
        widthBoxDimension2 = [GlobalData sharedGlobalData].widthLandscapeSmall;
    }
    else 
    {
        heightBoxDimension1 = [GlobalData sharedGlobalData].heightPortrait;
        widthBoxDimension1 = [GlobalData sharedGlobalData].widthPortraitBig;
        widthBoxDimension2 = [GlobalData sharedGlobalData].widthPortraitSmall;
    }
    for(UIView* view in self.view.subviews)
    {
        NSLog(@"%.0f %.0f %.0f %.0f ", view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
        if(view.frame.size.width >400)
        {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, widthBoxDimension1, heightBoxDimension1)];
            NSLog(@"%.0f %.0f %.0f %.0f ", view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
        }
        else
        {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, widthBoxDimension2, heightBoxDimension1)]; 
            NSLog(@"%.0f %.0f %.0f %.0f ", view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
        }
    }
    [self.view setNeedsDisplay];

}

私はグローバル変数のクラスを持っています。ここで、ビューの静的な寸法を入力します。同じ高さで幅が異なる2つのタイプのビューがあります。シミュレーターを回してこのメ​​ソッドを入力しますが、ビューのフレームを変更した後は、これらのビューをリロードしないでください...

コンソールの出力は次のとおりです。

2012-06-05 10:53:09.309 TemplateiPad2[12561:207] 8 8 752 318 
2012-06-05 10:53:09.309 TemplateiPad2[12561:207] 8 8 752 446 
2012-06-05 10:53:09.309 TemplateiPad2[12561:207] 8 334 372 318 
2012-06-05 10:53:09.309 TemplateiPad2[12561:207] 8 334 372 446 

リフレームは適切に行いますが、リロードしないでください。

4

2 に答える 2

0

試す

[self.view setNeedsDisplay];
于 2012-06-04T11:09:54.073 に答える
0

これはあなたのためのトリックを行います!

[self.view setNeedsDisplay]; 
于 2012-06-04T13:19:23.513 に答える