UIImageView没有出现在UIScrollView中

时间:2011-06-05 18:02:20

标签: iphone iphone-sdk-3.0

你好我无法弄清楚为什么UIImageView不想出现在UIScrollView中。 现在这里有点抓,我从图书馆抓图片并将其添加到UIScrollView - 这似乎不起作用。

但是,如果我只是在“do load”方法中添加图片,那么它可以正常工作: [代码]

UIImageView *tmp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"P3130016.JPG"]];

[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(800, 800)];
[scrollView addSubview:imageView];

我不知道为什么或问题在哪里,请指教!

2 个答案:

答案 0 :(得分:1)

我对您的实现感到有些困惑,因为您没有发布所有代码,您正在初始化'tmp'图像视图,但我无法看到它的使用位置。

我要去 persume 你需要在UIImageView初始化后定义UIImageView的框架,目前UIImageView *tmp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"P3130016.JPG"]]; tmp.frame = CGRectMake(x,y,width,height); 没有框架因此没有绘制在视图中。

您可以像这样设置框架:

CGRectMake(0,0,100,100)

这些值必须是浮点值,其中x和y从屏幕的左上角锚定。所以[scrollView addSubview:tmp]; 会在屏幕左上角绘制100 x 100平方。您可以在文档here中找到更多信息。

然后将其添加到ScrollView:

UIImageView *tmp = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"P3130016.JPG"]] autorelease];

值得注意的是你的* tmp UIImageView目前正在泄漏内存,我建议在初始化时将它添加到自动释放池中:

{{1}}

答案 1 :(得分:0)

如果在加载滚动视图后将图像添加到滚动视图,则需要明确告诉视图重绘。

[scrollView setNeedsDisplay];

iOS视图尽可能少地绘制自己,因此每当需要显示更改的内容时,您都需要显式通知视图。有关详细信息,请参阅UIView setNeedsDisplay