2010-12-02 21 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的矩形中显示的中心部分图片(不调整大小)。

相关问题