我在连接到 Outlet 的 xib 中有一个 MapView。我通过代码为纵向和横向设置框架。帧是正确的,但输出是错误的。为什么?
这是我在 MapViewController.h 中的代码:
@interface MapViewController : UIViewController <MKMapViewDelegate>{
}
@property (nonatomic, strong)UIImageView * imageView;
@property (nonatomic, strong)IBOutlet UIButton * buttonHome;
@property (nonatomic, strong)IBOutlet UIButton * buttonMap;
@property (nonatomic, strong)IBOutlet UIButton * buttonFavorites;
@property (nonatomic, strong)IBOutlet UILabel * labelTitle;
@property (nonatomic, strong)IBOutlet MKMapView *mapView;
和 MapViewController.m
@implementation MapViewController
@synthesize imageView;
@synthesize buttonFavorites;
@synthesize buttonHome;
@synthesize buttonMap;
@synthesize labelTitle;
@synthesize mapView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
-(void) layoutPortrait {
self.imageView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bar_V.png"]];
self.imageView.frame= CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.size.width, 80);
self.imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.labelTitle.frame =CGRectMake(14, 83, 121, 54);
self.buttonFavorites.frame= CGRectMake(109, 485, 33, 33);
self.buttonHome.frame =CGRectMake(14, 485, 33, 33);
self.buttonMap.frame=CGRectMake(61, 485, 33, 33);
self.mapView.frame = CGRectMake(0, 140, 320, 310);
}
-(void) layoutLandscape {
self. imageView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bar_O.png"]];
self.imageView.frame= CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y,self.view.bounds.size.width,70 );
self.imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.labelTitle.frame =CGRectMake(20,72,140,48);
self.buttonFavorites.frame= CGRectMake(107,237,33,33);
self.buttonHome.frame =CGRectMake(11,237,33,33);
self.buttonMap.frame=CGRectMake(59,237,33,33);
self.mapView.frame = CGRectMake(201,65,367,227);
}
- (void)viewDidLoad
{
[super viewDidLoad];
UIInterfaceOrientation deviceOrientation= self.interfaceOrientation;
if(deviceOrientation == UIInterfaceOrientationPortrait || deviceOrientation== UIInterfaceOrientationPortraitUpsideDown) {
[self layoutPortrait];
}
else if (deviceOrientation== UIInterfaceOrientationLandscapeRight){
[self layoutLandscape];
}
else if (deviceOrientation==UIInterfaceOrientationLandscapeLeft){
[self layoutLandscape];
}
[self.view addSubview:self.imageView];
[self.view addSubview:self.mapView];
[self.view addSubview:self.labelTitle];
[self.view addSubview:self.buttonHome];
[self.view addSubview:self.buttonMap];
[self.view addSubview:self.buttonFavorites];
self.mapView.delegate=self;
}
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice]orientation];
if(self.imageView){
[self.imageView removeFromSuperview];
}
if(deviceOrientation == UIInterfaceOrientationPortrait || deviceOrientation== UIInterfaceOrientationPortraitUpsideDown) {
[self layoutPortrait];
}
else if (deviceOrientation== UIInterfaceOrientationLandscapeRight){
[self layoutLandscape];
}
else if (deviceOrientation==UIInterfaceOrientationLandscapeLeft){
[self layoutLandscape];
}
[self.view addSubview:self.mapView];
[self.view addSubview:self.labelTitle];
[self.view addSubview:self.imageView];
[self.view addSubview:self.buttonFavorites];
[self.view addSubview:self.buttonHome];
[self.view addSubview:self.buttonMap];
}
我究竟做错了什么?