设置UIImageView大小?

时间:2010-04-22 19:55:29

标签: iphone objective-c ipad uiimageview size

我有以下问题:我在包含UIImageViews的UIScrollView中生成子视图UIView。

NSArray *bilder = [[NSArray alloc] initWithObjects:@"lol.jpg", @"lol2.jpg", nil];
NSArray *added = [[NSMutableArray alloc] init];
UIImageView *tmpView;

for (NSString *name in bilder) {
    UIImage *image = [UIImage imageNamed:name];
    tmpView = [[UIImageView alloc] initWithImage:image];
    tmpView.contentMode = UIViewContentModeScaleAspectFit;
    tmpView.frame = CGRectMake(0, 0, 300, 300);

    [added addObject:tmpView];

    [tmpView release];
}

CGSize framy = mainFrame.frame.size;

NSUInteger x = 0;

for (UIView *view in added) {
    [mainFrame addSubview:view];
    view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);
}

mainFrame.scrollEnabled = YES;
mainFrame.pagingEnabled = YES;
mainFrame.contentSize = CGSizeMake(framy.height * [added count], framy.width);
mainFrame.backgroundColor = [UIColor blackColor];

我从数组中获取图像文件名。现在我想将imageview调整为特定大小,但它不起作用。有什么建议吗?

谢谢+问候

3 个答案:

答案 0 :(得分:4)

更改tmpView.frame以使用新的CGRect:

tmpView.frame = CGRectMake(tmpView.frame.origin.x,
                           tmpView.frame.origin.y,
                           newWidth,
                           newHeight);

答案 1 :(得分:4)

UIImage缺少setSize:的{​​{1}}方法,但this post似乎使用NSImage上的类别添加scaleToSize:方法。< / p>

答案 2 :(得分:0)

我看到的是:

view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);

但是如果你看一下CGRectMake ......

Declaration: CGRect CGRectMake (
   CGFloat x,
   CGFloat y,
   CGFloat width,
   CGFloat height
);

您正在设置X值,而不是Y值。我希望,根据你以后的电话:

mainFrame.contentSize = CGSizeMake(framy.height * [added count], framy.width);

您打算让这些图像显示在彼此之上,而不是并排显示。

建议:

view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);

view.frame = CGRectMake(0,framy.height * x++, framy.height, framy.width);