将图像拟合到UAModalPanel

时间:2013-08-22 14:46:45

标签: objective-c image uamodalpanel

我目前正在使用UAModalPanel,我只想要使用此组件显示图片。所以我做了以下事情:

#import <UIKit/UIKit.h>
#import "UAModalPanel.h"

@interface LolcatPanel : UAModalPanel

- (void)showLolcat;

@end


#import "LolcatPanel.h"

@implementation LolcatPanel

- (void)showLolcat
{
    int pic = (arc4random() % 10) + 1;
    NSString *intString = [NSString stringWithFormat:@"%d", pic];
    NSMutableString *picture = [[NSMutableString alloc] initWithString:intString];
    [picture appendString:@".jpg"];
    NSLog(@"Loading image %@", picture);

    NSString* imageName = [[NSBundle mainBundle] pathForResource:intString ofType:@"jpg"];

    UIImage *testImage = [UIImage imageWithContentsOfFile:imageName];

    if (testImage == nil) {
        NSLog(@"FAILED");
    }

    UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
    imgView.image = testImage;
    imgView.contentMode = UIViewContentModeScaleToFill;

    [self addSubview:imgView];
}

@end

我想在UAModelPanel中显示适合的图片,但ATM结果并不是很好。

2 个答案:

答案 0 :(得分:0)

检查图像视图的大小。您还应该配置自动调整大小/自动布局,以便对已更改的超级视图有一个已知的反应。

您可能希望切换到宽高比适合而不是缩放填充内容模式以获得良好的显示效果。您可能还需要将图像视图设置为clipToBounds,以防止在设定范围之外绘制任何图像。

答案 1 :(得分:0)

我找到了解决方案:

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(22, 20, width, height)];
imgView.image = testImage;
imgView.contentMode = UIViewContentModeScaleAspectFit;

[self.contentContainer addSubview:imgView];

我必须将imageview添加到contentcontainer。

此致 的Sascha