Способ изменить значок типа аксессуара в UITableviewcell - PullRequest
3 голосов
/ 01 июня 2011

У меня есть табличное представление, которое показывает список файлов для загрузки. Когда я нажимаю кнопку аксессуара, он загрузит выбранный файл. Я хочу изменить изображение кнопки раскрытия деталей. Это возможно ....?

И если я использую кнопку с изображением в дополнительном представлении. Есть ли способ делегирования таблицы для этого ...

Ответы [ 3 ]

4 голосов
/ 01 июня 2011

Ответ2: Вы можете создать свой собственный метод и вызвать его в этом случае.

int row=indexPath.row;

UIButton *trackImageOnMap=[[UIButton alloc] initWithFrame:CGRectMake(420, 9, 40, 50)];
[trackImageOnMap setImage:[UIImage imageNamed:@"track_map_icon.png"] forState:UIControlStateNormal];
int iId=[[self.imageId objectAtIndex:row] intValue];
NSLog(@"iId=%d",iId);
[trackImageOnMap setTag:iId];
[trackImageOnMap addTarget:self action:@selector(trackImageOnMapButtonTouched:)forControlEvents:UIControlEventTouchDown];
[trackImageOnMap setContentMode:UIViewContentModeScaleToFill];
//[cell setAccessoryView:trackImageOnMap];
[cell addSubview:trackImageOnMap];
3 голосов
/ 01 июня 2011

Вы можете создать UIImageView и назначить его для accessoryView UITableViewCell.

UIImageView *imageView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"accessoryIcon"]] autorelease];
cell.accessoryView = imageView;

Если вам нужна кнопка для accessoryView, она в основном такая же:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"buttonImage"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventTouchUpInside];
button.tag = cell.indexPath;
cell.accessoryView = button;
0 голосов
/ 02 августа 2012

Если вы хотите заменить тип по умолчанию, вы можете перезаписать UITableViewCell и использовать следующий код:

- (void)setAccessoryType:(UITableViewCellAccessoryType)accessoryType
{
    if (accessoryType == UITableViewCellAccessoryDisclosureIndicator)
    {
        self.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"YourNewImage.png"]] autorelease];
    }
    else
    {
        [super setAccessoryType:accessoryType];
    }
}
...