Изменение цвета текста UILabel в UITableViewCell - PullRequest
0 голосов
/ 24 октября 2011

Мне необходимо изменить цвет текста UILabel, который содержится в UITableViewCell при нажатии кнопки.Я создал UIColor object, для которого при нажатии кнопки задается заданный цвет и который называется методом UITableView reloadData, даже тогда цвет не меняется.Как мне это реализовать?

Ответы [ 3 ]

0 голосов
/ 24 октября 2011

Для изменения цвета текста UITableViewCell необходимо реализовать функцию делегатора UITableViewDataSource

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath(NSINdexPath*)indexPath

Там вы получите ячейку с


UITableViewCell *tableViewcell = [self.tableView dequeueReusableCellWithIdentifier: @"Cell"];

 if (tableViewCell == nil) 
{
    tableViewCell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell"] autorelease];
}

А здесь вы можете изменить цвет текста.

Кстати: вам следует принять некоторые ответы, которые вы получите на свои вопросы - это повысит ваши шансы получить ответы на будущие вопросы ...

0 голосов
/ 24 октября 2011

Хорошо, пока вы добавляете пользовательскую UILabel в contentView, установите тег для UILabel.

UILabel *cl = nil;
cl = (UILabel*)[cell.contentView viewWithTag:2000];
if( !cl )
{
    cl = [[UILabel alloc] initWithFrame:CGRectMake(10,10,100,30)];
    cl.tag = 2000;
    [cell.contentView addSubview:cl];
}
if( beforeButtonPressed )
cl.textColor = [UIColor blackColor];
else if ( afterButtonPressed )
cl.textColor = [UIColor blueColor];

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

0 голосов
/ 24 октября 2011

Я предполагаю, что вы хотите изменить цвет всех строк в вашей таблице. (Если вы просто хотите изменить одну строку, вам понадобится indexPath).

Создайте переменную BOOL, которая отслеживает состояние цвета. В вашей подпрограмме нажатия кнопки, установите это значение соответствующим образом и выполните [tableView reloadData].

В cellForRowAtIndexPath необходимо проверить переменную и установить цвет для обоих состояний каждый раз. Важно, чтобы вы делали это обоими способами, иначе состояние ячейки будет непредсказуемым при прокрутке.

...