Objective c 收藏夹列表iOS 6位置数据

Objective c 收藏夹列表iOS 6位置数据,objective-c,ios6,favorites,Objective C,Ios6,Favorites,我想从sqlite数据库加载数据,并将其放置在视图上(一张照片和描述) 从数据库加载数据后,如何将数据放置在位置X和Y 我做了一张图片来解释它(我正在为iphone 5开发): 我想也许我可以用CGRect来做,但我不知道具体怎么做。我不知道在没有给出代码作为答案的情况下如何解释。但作为一个正常的多维循环。计算位置并在当前子视图中添加新图像(如果可以)。 以下未测试: [编辑:针对正确的缩进和语法错误进行更新] CGFloat IMAGE_WIDTH = 150; CGFloat

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

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

我做了一张图片来解释它(我正在为iphone 5开发):


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

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

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

   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];
    }
}
CGFloat图像_宽度=150;
CGFloat图像_高度=150;
CGFloat LABEL_PADDING=10;
对于(int i=0;i<[总行数];i++){
//这是每行的初始帧
CGRect newFrame=CGRectMake(0,i*图像高度,图像宽度,图像高度);
对于(int j=0;j<[TOTAL_COLUMNS];j++){
//但对于柱,我们需要更多的x位置,这样它就不会堆积在自身上
newFrame=CGRectMake(图像宽度*j,
newFrame.origin.y,
图像宽度,
图像高度);
UIImageView*newImageView=[[UIImageView alloc]initWithFrame:newFrame];
newImageView.image=[UIImage ImageName:@“image.png”];
//在图像底部创建标签
UILabel*newLabel=[[UILabel alloc]initWithFrame:CGRectMake(newFrame.origin.x,
newFrame.origin.y+
newFrame.size.height+
贴上标签,
newFrame.size.width,
新框、尺寸、高度);
[newLabel setText:[NSString stringWithFormat:@“说明%d”,j]];
NSLog(@“%@”,NSStringFromCGRect(newFrame));
[self.view addSubview:newImageView];
[self.view addSubview:newLabel];
}
}

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

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


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

CGRectMake
只接受浮点数,我在这里遗漏了一些东西,当我尝试实现你的代码时,它在那里给了我一个错误,关于2号的“int”数据。对于我糟糕的Fabio,请立即查看更新的答案。CGRectMake需要4个参数,错过另一个CGRectMake(x,y,width,height)是的,你是对的,知道我对最后两行有疑问,你能解释一下吗?我收到一条警告,告诉我
addSubView
不存在。感谢您的帮助,然后可能是您在使用UIViewController。要添加子视图,请使用
[self.view addSubview:…]
。子视图意味着将某个元素作为子元素添加到另一个父元素。好的。只要你知道它是怎么工作的。其余的你都能搞定。如果是帮助他人的正确解决方案,请考虑接受这个答案。抱歉,无法测试代码。尽我最大的努力单独在编辑字段中阅读。