我正在从服务器加载预览图像(缩略图)并将它们保存到本地文档目录。对于每个图像,都有一个核心数据条目。
现在我需要将此缩略图渲染到ScrollView中。我不知道将来会有多少缩略图,为什么我需要以编程方式将鼠标渲染到ScrollView中。我知道我必须根据缩略图的数量设置scrollView的高度。
缩略图需要可触摸,因为点击缩略图应打开另一个对话框。
第一个问题:用于显示缩略图的正确控件是什么?将UIButton作为自定义按钮,缩略图设置为背景图像吗?
第二个问题:如何设置动态矩阵以将拇指(按钮)渲染到。
由于
答案 0 :(得分:1)
第一个答案:为了这个目的,我建议使用UIButton
,这就是我在这种情况下会做的事情
第二个答案:假设你有一个所有缩略图的数组,那么你可以简单地迭代它们以类似于这样的方式创建所有按钮:
NSArray *thumbnailImages;
UIScrollView *scrollView;
//Scrollview is linked up through IB or created dynamically...whatever is easier for you
//The thumbnailImages array is populated by your list of thumbnails
//Assuming that your thumbnails are all the same size:
const float thumbWidth = 60.f;//Just a random number for example's sake
const float thumbHeight = 90.f;
//Determine how many thumbnails per row are in your matrix.
//I use 320.f as it is the default width of the view, use the width of your view if it is not fullscreen
const int matrixWidth = 320.f / thumbWidth;
const int contentHeight = thumbHeight * (thumbnailImages.count / matrixWidth);
for ( int i = 0; i < thumbnailImages.count; ++i )
{
int columnIndex = i % matrixWidth;
int rowIndex = i / matrixWidth;//Intentionally integer math
UIImage* thumbImage = [thumbnailImages objectAtIndex:i];
UIButton* thumbButton = [[UIButton alloc] initWithFrame:CGRectMake(columnIndex*thumbWidth, rowIndex*thumbHeight, thumbWidth, thumbHeight)];
thumbButton.imageView.image = thumbImage;
[scrollView addSubView:thumbButton];
[thumbButton release];
}
[scrollView setContentSize: CGSizeMake(320.f, contentHeight)];
不一定把这个单词作为代码,我只是在记事本中写下来,但它应该给你一般的想法如何做到