2010-12-02 3 views
0

シンプルなUIViewを作成してメインビューに追加しています。何を試してもフレームを変更していますが、ビューのサイズは変更されません。私のスーパービューを見下ろす。コードビューやインターフェイスビルダでUIViewのサイズが変更されない

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view 
         calloutAccessoryControlTapped:(UIControl *)control 
{ 
    HotelInformationViewController *vc = 
    [[HotelInformationViewController alloc]initWithNibName:@"HotelInformationViewController" 
    bundle:nil control:control]; 

    [self.view addSubview:vc.view]; 
} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil control:(UIControl *)control 
{ 
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) 
    { 
    self.view.bounds = CGRectMake(control.frame.origin.x, control.frame.origin.y, 286, 286); //This is the size I want to view to be 286, 286 
    } 
    return self; 
} 

答えて

0

あなたはself.view.frame = CGRectMake(...)を呼ぶべきである:インタフェースビルダでの表示サイズを変更すると、いずれかの効果がありません。 frameは、スーパービュー内のビューの位置とサイズを表すプロパティで、ビューを移動またはサイズ変更するために変更するものです。

bounds属性は、ビューのサブビューのフレームが内に存在し、これまで必要であれば、それは明示的に設定することはほとんどいないビューの座標系の内部境界である)

1

問題があるということです境界をに変更しようとしており、フレームを変更する必要があります。境界は、スーパービュー内の矩形に投影する必要がある内部ビューでは矩形です(フレーム)。サイズ300x300の画像を想像してみてください。画面上にフレーム(0,0,100,100)が表示され、その写真の中央部分を表示する場合は、境界を(150,150,100,100)に設定する必要があります。結果として、あなたの中央部分が、スーパービューの左上隅にサイズ100x100の矩形で表示された(サイズ変更なしで)表示されます。

関連する問題