我有以下问题:我在包含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调整为特定大小,但它不起作用。有什么建议吗?
谢谢+问候
答案 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);