Проблема в создании скрытой кнопки Visible - PullRequest
0 голосов
/ 22 февраля 2012

Следующий код, который я пишу, чтобы скрыть некоторые кнопки в viewDidLoad.Здесь кнопки скрываются

- (void)viewDidLoad
{
 for (int i = 100; i<117; i++) 
    {
        UIButton *smileyButton = (UIButton *)[scroll viewWithTag:i];
        UITextField *smileyFields = (UITextField *)[scroll viewWithTag:i];
        UIImageView *smileyImage = (UIImageView *)[scroll viewWithTag:i];
        smileyFields.hidden = YES;
        smileyButton.hidden = YES;
    }  
}

Теперь в следующем действии я делаю кнопки видимыми.Но кнопки не видны

-(IBAction)editButton:(id)sender
{
 for (int i = 100; i<117; i++) 
    {
        UIButton *smileyButton = (UIButton *)[scroll viewWithTag:i];
        UITextField *smileyFields = (UITextField *)[scroll viewWithTag:i];
        UIImageView *smileyImage = (UIImageView *)[scroll viewWithTag:i];
        [smileyFields setHidden:NO];   //TextFields Not Visible 
        [smileyButton setHidden:NO];  //Buttons Not Visbile
   }

}

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Если у вас есть несколько представлений с одним и тем же тегом, функция viewWithTag вернет только одно представление, поэтому, если вы вызовете это 3 раза, вы получите всегда одно и то же представление.

Чтобы сделать то, что вы хотите, вы можете перебрать все подпредставления и проверить теги:

for (UIView *aView in scrollView.subviews) {
    if (aView.tag >= 100 && aView.tag < 117) {
        aView.hidden = NO;
    }
}
0 голосов
/ 22 февраля 2012

Вы строите контроллер представления в Интерфейсном Разработчике?Если это так, присвойте тегу каждой вещи, которую вы хотите скрыть, другое число: попробуйте что-нибудь простое, например, 1, 2, 3 и т. Д. Если вы строите код, задайте вместо него свойство tag.Запомните ваш максимальный номер тега (предположим, это 4).

Затем добавьте следующее к вашему .h:

- (void)setTaggedViewsHidden:(BOOL)hidden;

и следующее к своему .m:

- (void)setTaggedViewsHidden:(BOOL)hidden {
  for (NSInteger tag = 1; tag <= 4; tag++) {
    [scroll viewWithTag:tag].hidden = hidden;
  }
}

В вашем viewDidLoad вызовите его так:

[self setTaggedViewsHidden:YES];

, а в вашем editButton: селекторе вызовите его так:

[self setTaggedViewsHidden:NO];

Не забудьте настроить код в setTaggedViewsHidden чтобы соответствовать тегам, которые вы используете.Лучший способ сделать это - #define константа для тегов min и max и использовать их в цикле for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...