0

我想从中加载我的数据sqlite database并将其放置在视图上(一张照片和描述)。

从数据库加载数据后,如何将数据放在 X 和 Y 位置?

我做了一张图片来解释它(我正在开发iphone 5): 在此处输入图像描述

我想也许我可以做到,CGRect但我不知道具体怎么做。

4

2 回答 2

1

我不确定如何在不给出代码作为答案的情况下进行解释。但作为一个正常的多维循环。计算位置并在当前子视图中添加新图像(如果可以的话)。
以下未测试:

[编辑:更新正确缩进和语法错误]

   CGFloat IMAGE_WIDTH = 150;
   CGFloat IMAGE_HEIGHT = 150;
   CGFloat LABEL_PADDING = 10;

for (int i = 0; i < [TOTAL_ROWS]; i++) {
    // this is the initial frame for each row
    CGRect newFrame = CGRectMake(0, i * IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_HEIGHT);
    for (int j = 0; j < [TOTAL_COLUMNS]; j++) {
        // but for column we need to more the x.position so its not stacking on itself
        newFrame = CGRectMake(IMAGE_WIDTH * j,
                              newFrame.origin.y,
                              IMAGE_WIDTH,
                              IMAGE_HEIGHT);

        UIImageView *newImageView = [[UIImageView alloc] initWithFrame:newFrame];
        newImageView.image = [UIImage imageNamed:@"image.png"];
         // create a label at the bottom of the image
        UILabel *newLabel = [[UILabel alloc] initWithFrame:CGRectMake(newFrame.origin.x,
                                                                      newFrame.origin.y +
                                                                      newFrame.size.height +
                                                                      LABEL_PADDING,
                                                                      newFrame.size.width,
                                                                      newFrame.size.height)];
        [newLabel setText:[NSString stringWithFormat:@"description %d", j]];
        NSLog(@"%@", NSStringFromCGRect(newFrame));
        [self.view addSubview: newImageView];
        [self.view addSubview: newLabel];
    }
}
于 2013-02-24T00:23:18.070 回答
0

重要的是,我使用了另一种更好的解决方案。

在 iOS 6 上我们有一个新的东西叫做:CollectionViewController

在此处输入图像描述

对于这个问题,这是一个更好的解决方案。

于 2013-03-01T10:00:29.373 回答