为什么UIViewContentModeScaleAspectFit不能在UIScrollView中的UIImageView中工作?见附图

时间:2013-01-12 17:11:52

标签: iphone ios objective-c xcode cocoa-touch

我无法理解......以前在我使用较旧的IOS框架制作的其他应用程序中使用它

检查以下代码:

如果我将contentMode更改为Left,则会显示图像...

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UIScrollView* scrBook;
}

@property (nonatomic, retain) IBOutlet UIScrollView* scrBook;

@end



@synthesize scrBook;

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect frame;
    frame.origin.x = 0;
    frame.origin.y = 0;
    frame.size = self.scrBook.frame.size;

    UIImageView *subview = [[UIImageView alloc] initWithFrame:frame];

    //subview.contentMode = UIViewContentModeLeft;
    subview.contentMode = UIViewContentModeScaleAspectFit;

    UIImage *currentImage = [UIImage alloc];
    currentImage = [UIImage imageNamed:@"model.jpg"];

    subview.image = currentImage;

    [self.scrBook addSubview:subview];

    self.scrBook.contentSize
    = CGSizeMake(self.scrBook.frame.size.width * 1, self.scrBook.frame.size.height);
}

UIViewContentModeLeft:

UIViewContentModeLeft

UIViewContentModeScaleAspectFit:

UIViewContentModeScaleAspectFit

更新: 我的最后一次尝试是将xcode更新为4.5.2并且它也不起作用,令人沮丧......

2 个答案:

答案 0 :(得分:0)

不是你的问题的答案,只是一些优化......

UIImage *currentImage = [UIImage alloc];
currentImage = [UIImage imageNamed:@"model.jpg"];

不需要第一行,只需这样做:

UIImage *currentImage = [UIImage imageNamed:@"model.jpg"];

此外,

self.scrBook.contentSize
= CGSizeMake(self.scrBook.frame.size.width * 1, self.scrBook.frame.size.height);

可以......

self.scrBook.contentSize = self.srcBook.frame.size;

答案 1 :(得分:0)

我找到了一个解决方案,但仍然不知道原因,我将我的XCode升级到4.5.1到4.5.2仍然没有。

我使用4.5.2的exaclty相同的代码重复了一个旧版本的xcode(早于4.5.1)制作的旧项目,它运行良好....

非常奇怪......我感觉很糟糕我花了这么多时间试图寻找解决方案......