2015-04-14 67 views
0

我正在构建一个示例项目,我正在创建一个UIImageView和UIButton以编程方式并在循环内更改其框架。我的情况是,当我点击我的按钮imagePicker会来,并从图书馆采摘图像后,然后它将如何在图像查看和按钮将转移图像视图旁边。这样如果我继续选择图像按钮,每次都会改变。我必须在一行中保留3个项目,但我必须在不使用collectionView或tableview的情况下执行此操作。对于第一行,我的代码工作正常,但是当我第三次选择图像时,它不能按预期工作。截图将使其更加清晰。ImageView框架更改条件

这就是我想要的。

enter image description here

第一行是工作的罚款这样

enter image description here

但是当我轻点按钮第三次,并选择一个图像,然后我越来越喜欢这个

enter image description here

将imageView和吨是

int x = 8; 
int y = 8; 
int margin = 9; 

for (int i=1;i<=self.arrImages.count;i++){ 
if (i%2 == 0 && i%3!=0) { 

    [myImage setFrame:CGRectMake(x+margin+95.0, y, 95.0, 95.0)]; 
    [_addPhotoButton setFrame:CGRectMake((x+margin+95.0)*2, y, 95.0,95.0)]; 
    x = 8; 
    y = y + margin + 95.0; 

} 
else if (i%3 == 0 && i%2 !=0) { 
    [myImage setFrame:CGRectMake(x+margin+95.0+95.0+margin, y, 95.0,95.0)]; 
    [_addPhotoButton setFrame:CGRectMake(x, y+95.0+margin, 95.0, 95.0)]; 
    x = 8; 
    y = y + margin + 95.0; 

    } 
    else { 

     [myImage setFrame:CGRectMake(x, y, 95.0, 95.0)]; 
     [_addPhotoButton setFrame:CGRectMake(x+margin+95.0, y, 95.0, 95.0)]; 

     } 

    } 

} 

我相信内循环,我给出的条件是错误的。任何人都可以请纠正我的问题。任何帮助,高度赞赏。

回答

1
int margin = 9; 
CGFloat size = 95.0; 

UIImage *chosenImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
[self.arrImages addObject:chosenImage]; 


UIImageView *myImage = [[UIImageView alloc] initWithImage:chosenImage]; 


myImage.frame = _addPhotoButton.frame; 
[self.scrollView addSubview:myImage]; 

CGFloat x,y; 
if(self.arrImages.count %3 == 0) { 
    x = 8; 
    y = _addPhotoButton.frame.origin.y + _addPhotoButton.frame.size.height + margin; 

} 
else { 
    x = myImage.frame.origin.x + size + margin; 
    y = _addPhotoButton.frame.origin.y; 
} 
_addPhotoButton.frame = CGRectMake(x, y, _addPhotoButton.frame.size.width, _addPhotoButton.frame.size.height); 

[self.scrollView setContentSize:CGSizeMake(self.view.frame.size.width, _addPhotoButton.frame.size.height + _addPhotoButton.frame.origin.y + 8)]; 

[self.scrollView layoutIfNeeded]; 
[picker dismissViewControllerAnimated:YES completion:NULL]; 
+0

@iPeter - 让我知道你是否需要更多的澄清或帮助。 – DanielS

+0

我保证!最近3天我陷入了这个问题。 @DanielS – iPeter

+0

你明白我的问题有点不对。每次选择图像后,我的按钮都在移动。 – iPeter