добавление фонового изображения в Outlet Collection - PullRequest
0 голосов
/ 13 марта 2012

Я создал коллекцию розеток для нескольких кнопок, теперь мне нужно изменить фон кнопок, вот мой код, но компилятор выдает ошибку:

[outlet makeObjectsPerformSelector:@selector(setBackgroundImage:img forState:UIControlStateSelected)];

Ошибка:

Ожидается ':'

как я могу это решить?

РЕДАКТИРОВАНИЕ:

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 50)];
imgView.image = [UIImage imageNamed:@"mask.png"];
[outlet makeObjectsPerformSelector:@selector(setBackgroundImage:)withObject:imgView];  
[imgView release];

Ответы [ 3 ]

1 голос
/ 13 марта 2012

Вы не можете поместить аргументы в @selector(...).Вам нужно использовать makeObjectsPerformSelector:withObject:, например, ваш код должен быть что-то как

[EsOutlet makeObjectsPerformSelector:@selector(setBackgroundImage:) withObject:img];

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

0 голосов
/ 13 марта 2012

Это потому, что ваш синтаксис селектора неверен. Вы не можете предоставить параметры для оператора @selector.

Так как вам нужно предоставить несколько параметров (изображение + состояние управления), вам нужно пройти через EsOutlet и выполнить свои действия:

for (UIControl *control in EsOutlet)
{
     //perform action on control
}
0 голосов
/ 13 марта 2012

Вы не можете иметь параметры внутри оператора @selector. Поскольку в NSArray нет makeObjectsPerformSelector, который бы принимал два параметра, вам нужно перебирать объекты и самостоятельно вызывать метод setBackgroundImage:forState:.

* 1006 Е.Г. *

for (UIButton *b in outlet) {
    [b setBackgroundImage:img forState:UIControlStateSelected];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...