2010-07-15 7 views
0

Im создание и добавление сетки кнопок на мой настраиваемое представление keyboardView следующим образом:Получить UIButton с точки зрения программно

int offset = 0; 
for (int row = 0; row<4; row++){ 
    for (int col = 0; col<13;col++) { 
     offset +=1; 
     UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     aButton.frame = CGRectMake(5+col*65+offset,5+row*65, 60, 60); 
     [aButton setTitle:myarray[row][col] forState:UIControlStateNormal]; 
     [aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];   

     [keyboardView addSubview: aButton]; 
    } 
} 

мне нужно некоторые кнопки, чтобы быть различных размеров, как клавиши возврата или пробел. Как я могу получить ссылку на определенную кнопку программно, позже в том же методе? Есть ли более простой способ, чем установка tag, а затем вызов [keyboardView viewWithTag:t]? Потому что int собираются запутать.

Спасибо.

ответ

0

Вы можете указать переменные экземпляра, такие как UIButton *spaceBar. если вы достигнете кнопки в двух итерациях, которые считаются пробелами, просто сделайте spacebar = aButton. Итак, вы можете в дальнейшем использовать этот экземпляр Variable, который ссылается на указанную кнопку. ;-) Надеюсь, это более или менее понятно. ^^

+0

Я могу изменить ширину кнопок в порядке, используя этот метод, но, и его большой, но кнопки перерисовываются под моими существующими кнопками, мне нужно сдвинуть все вправо на новую ширину моих кнопок ... – joec

+0

Чем это усложняется. Я бы создал его в IB. Или нет причин не делать этого? –

+0

Не особенно, кроме его большого вида и необходимости управлять - перетащите каждую из кнопок на владельца файла отдельно, так как я не думаю, что вы можете сделать несколько выборов для IBAction? Ты можешь? – joec

0

Вы можете сделать это с помощью тегов UIView (которые не должны путать, просто создать перечисление), или если у вас есть только несколько «специальных» UIButtons, вы можете создать ivars, чтобы ссылаться на них.

+0

Специальные кнопки будут такими, как вкладки, кепки, shift, fn, ctrl, опция и т. Д. ... как бы я использовал перечисление в этом контексте? – joec

+0

enum {KeyQ, KeyW, KeyE, KeyR, KeyT, KeyY ...}; и пометить их. –

+0

Как бы я пометить их в цикле for? – joec

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