Как изменить цвет кнопки раскрытия деталей для ячейки таблицы

Я хочу изменить цвет кнопки раскрытия деталей ячейки таблицы. Заранее спасибо.

4 ответа

Решение

Вы должны создать пользовательский UIButton и установить его как accessoryView ячейки.

Ваш cellForRowAtIndexPath: будет выглядеть примерно так:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    //...

    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];

        UIButton *myAccessoryButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
        [myAccessoryButton setBackgroundColor:[UIColor clearColor]];
        [myAccessoryButton setImage:[UIImage imageNamed:@"my_red_accessory_image"] forState:UIControlStateNormal];
        [cell setAccessoryView:myAccessoryButton];
        [myAccessoryButton release];

        //...
    }

    //...
}

Измените оттенок таблицы, и ячейка тоже будет работать.

Вы можете изменить цвет Global Tint. Это изменит цвет по умолчанию на цвет, который вы меняете в своем приложении. Это изменит цвет вспомогательной кнопки на выбранный вами цвет.

Как вы получили лучший код с собой от Саймона: я сделал следующее:

UIButton *trackImageOnMap=[[UIButton alloc] initWithFrame:CGRectMake(420, 5, 40, 50)];
[trackImageOnMap setImage:[UIImage imageNamed:@"track_map_icon.png"] forState:UIControlStateNormal];
[trackImageOnMap setTag:iId];
[trackImageOnMap addTarget:self action:@selector(trackImageOnMapButtonTouched:)forControlEvents:UIControlEventTouchDown];
[trackImageOnMap setContentMode:UIViewContentModeScaleToFill];
[cell setAccessoryView:trackImageOnMap];

это реализует некоторые дополнительные свойства наряду с требуемым.

Другие вопросы по тегам