开发者

Showing picture in landscape Mode on the whole screen

i implemented a small code to show pictures, but why is the picture on Portrait Mode optimized to the iPhone screen and NOT optimized in Landscape Mode could you please help me, here is the code:

-(BOOL)shouldAutorotateToInterfaceOrientation:(开发者_运维知识库UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    if(interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
    { 
        imageView.frame = CGRectMake(0, 0, 320, 480); 
        imageView.contentMode = UIViewContentModeScaleToFill;
        return YES;
    } else if((interfaceOrientation == UIInterfaceOrientationLandscapeLeft ) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight)) { 
        imageView.contentMode = UIViewContentModeScaleToFill;
        imageView.frame = CGRectMake(0, 0, 480, 320); 
        return YES;
    }
    return YES;
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [self ladeImage];

    [super viewDidLoad];
}

- (void)ladeImage {
    id path = @"http://172.23.1.63:8080/RestfulJava/pics";
    NSURL *url = [NSURL URLWithString:path];
    NSData *data = [NSData dataWithContentsOfURL:url];  
    UIImage *img = [[UIImage alloc] initWithData:data];
    imageView = [[UIImageView alloc] initWithImage:img];
    imageView.frame = self.view.frame;
    [self.view addSubview:imageView];
}


When the iPhone is rotated, usually the affine transformation matrix contains the transformation needed for the rotation. This means that, with your code, the transformation for the view is changed in a way that it is rotated, but since you rotate the image too, you rotate it back.

try this:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  return YES;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜