Как манипулировать рамкой UIButton через его тег? - PullRequest
1 голос
/ 01 мая 2011

Я создал пару кнопок программно в коде (в цикле for).Если пользователь касается и перетаскивает одну из этих кнопок, я хотел бы анимировать рамку кнопки, а затем удалить ее (что-то вроде поведения обычной Dock OS X, если вы запускаете приложение).

Моя проблема в том, что я не знаю, как получить доступ к фрейму кнопки: у меня есть только тег кнопки, поскольку все это передается методу удаления. Как я могу манипулировать фреймом, если у меня есть только тег кнопки?

Вот мой код:

for (int k=0; k < numberOfTabs; k++) // k < 4 (e.g. 3 < 4) 
    {
        UIButton* btn = [[[UIButton alloc] initWithFrame:frame] autorelease];
        btn.tag = k; 
        btn.frame = CGRectMake(-10, 0, buttonWidth, buttonHeight);
        [btn    addTarget:self
                action:@selector(tabAction:)
      forControlEvents:UIControlEventTouchUpInside];
        [btn    addTarget:self
                    action:@selector(tabDelete:)
          forControlEvents:UIControlEventTouchDragOutside];

...

И это мой метод tabDeleteдо сих пор:

-(void)tabDelete:(id)sender
{
    NSInteger tid = ((UIControl*)sender).tag;
    NSLog(@"buttonTag about to be deleted has the tag: %i", tid);



}

1 Ответ

3 голосов
/ 01 мая 2011

Приведите UIControl к UIButton, и вы получите доступ к кадру, например:

- (void)tabDelete:(id)sender
{
    UIButton *button = (UIButton *)sender;
    CGRect frame = button.frame;
}

-addTarget:action:forControlEvents: на UIButton всегда предоставляет экземпляр UIButton в качестве отправителя.

@ albertamg : спасибо, исправлено:)

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