2015-04-14 2 views
0

Я создаю образец проекта, где я создаю UIImageView и UIButton программно и меняя его фрейм внутри цикла. Мое условие - когда я нажимаю на мою кнопку imagePicker придет и после выбора изображения из библиотеки, и тогда это будет как в изображенииView, и кнопка сдвинется рядом с представлением изображения. Таким образом, если я продолжаю выбирать кнопку изображения, будет меняться каждый раз. Я должен держать 3 элемента подряд, но я должен сделать это без использования collectionView или tableview. Для первой строки мой код работает нормально, но когда я выбираю изображение в третий раз, он работает не так, как ожидалось. Скриншоты сделают его более понятным.ImageView Frame Change Condition

Это то, что я хочу.

enter image description here

Для первой строки это работает отлично, как этот

enter image description here

Но когда я нажав на кнопку в третий раз и выберите изображение, а затем я получаю как этот

enter image description here

Код для смены изображенияПросмотр и ton is

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

Смежные вопросы