удалить кнопку из формы прокрутки - PullRequest
0 голосов
/ 06 января 2010

Я добавил один UIScrollView в свой проект ... и я добавил еще 10 кнопок "fieldButton" один раз, затем тот же UIScrollView, который я хочу добавить еще 5 кнопок. это я пытаюсь сделать эту первую добавленную 10-ю кнопку, также появляющуюся в просмотре прокрутки .. как удалить первую добавленную 10-ю кнопку перед добавлением другого элемента. в том же виде прокрутки ...

if(a == 1){
    for(int i = 0; i< 10; i++){
        UIButton *fieldButton_area = [[Mos_component alloc]getComboButton:title       andFrame:CGRectMake(0, y, 180, 40)];

        [fieldButton_area addSubview:cid];
        [fieldButton_area addTarget:self action:@selector(get_Area:)  forControlEvents:UIControlEventTouchUpInside];
        [state_scroll addSubview:fieldButton_area];
   }
}
else{
    UIButton *fieldButton_state = [[Mos_component alloc]getComboButton:title andFrame:CGRectMake(0, y, 180, 40)];
    [fieldButton_state addSubview:cid];
    [fieldButton_state addTarget:self action:@selector(get_Area:)  forControlEvents:UIControlEventTouchUpInside];
    [state_scroll addSubview:fieldButton_state];
}

Ответы [ 2 ]

0 голосов
/ 06 января 2010

Вы также можете попробовать анимировать кнопки на экране или установить alpha в 0, а затем добавить новые UIButton в представление.Это может использовать больше памяти, но в некоторых случаях выглядит лучше.

[UIView BeginAnimation];
// set time and speed here

// Perform animation here

[UIView setAnimationDidStopSelector /* here call the method for the new button's animation into the view*/];

[UIView CommitAnimations];
// Then set the button's enabled property to NO
button.enabled = NO;

Я надеюсь, что это поможет

0 голосов
/ 06 января 2010

Если вы хотите просто очистить ваше представление прокрутки (т.е. удалить все его подпредставления), то вы можете сделать это следующим образом:

for (UIView* subView in [state_scroll subviews])
    [subView removeFromSuperView];

Если вы хотите удалить некоторые конкретные виды, вы можете проверить их типы:

for (UIView* subView in [state_scroll subviews])
    if ([subView isKindOfClass:[Mos_component class]]) // remove Mos_components only
        [subView removeFromSuperView];

Вы также можете назначить свойство тэга вашим представлениям и удалить их следующим образом:

 [[fieldButton_area viewWithTag:yourTag] removeFromSuperView];

Также обратите внимание, что вы должны отпустить свои кнопки где-нибудь, иначе вы получите утечку памяти.

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