Objective c 收藏夹列表iOS 6位置数据
我想从sqlite数据库加载数据,并将其放置在视图上(一张照片和描述) 从数据库加载数据后,如何将数据放置在位置X和Y 我做了一张图片来解释它(我正在为iphone 5开发):Objective c 收藏夹列表iOS 6位置数据,objective-c,ios6,favorites,Objective C,Ios6,Favorites,我想从sqlite数据库加载数据,并将其放置在视图上(一张照片和描述) 从数据库加载数据后,如何将数据放置在位置X和Y 我做了一张图片来解释它(我正在为iphone 5开发): 我想也许我可以用CGRect来做,但我不知道具体怎么做。我不知道在没有给出代码作为答案的情况下如何解释。但作为一个正常的多维循环。计算位置并在当前子视图中添加新图像(如果可以)。 以下未测试: [编辑:针对正确的缩进和语法错误进行更新] CGFloat IMAGE_WIDTH = 150; CGFloat
我想也许我可以用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:…]
。子视图意味着将某个元素作为子元素添加到另一个父元素。好的。只要你知道它是怎么工作的。其余的你都能搞定。如果是帮助他人的正确解决方案,请考虑接受这个答案。抱歉,无法测试代码。尽我最大的努力单独在编辑字段中阅读。