Есть ли способ показать выбор Uitableviewcell на ограниченном кадре? - PullRequest
2 голосов
/ 07 января 2010

у меня в ячейке uitableview добавлено несколько ярлыков, вроде этого

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

 static NSString *CellIdentifier = @"Cell"; 

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 if (cell == nil) {
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

     UIImage* myImage = [UIImage imageNamed:@"AccessoryForDealsMain.png"];
     UIImageView *MyimageView = [[UIImageView alloc] initWithImage:myImage];
     MyimageView.contentMode=UIViewContentModeScaleToFill;
     cell.accessoryView=MyimageView;
     [MyimageView release];

     UILabel *BluePatti = [[UILabel alloc] init];
     BluePatti.frame=CGRectMake(0,0,4,44);
     BluePatti.backgroundColor = BLUEPATTI;//[UIColor blueColor];
     UILabel *BlackLine = [[UILabel alloc] init];
     BlackLine.frame=CGRectMake(3,0,1, 45);
     BlackLine.backgroundColor = BLACK_LINE;
     [BluePatti addSubview:BlackLine];
     [BlackLine release];

     [cell.contentView addSubview:BluePatti];
     [BluePatti release];

     UILabel *Seperator = [[UILabel alloc] initWithFrame:CGRectZero];
     Seperator.backgroundColor = [UIColor colorWithRed:234/256.0 green:234/256.0 blue:234/256.0 alpha:1.0]; //[UIColor lightGrayColor];
     Seperator.frame = CGRectMake(4,43,316,1);
     [cell.contentView addSubview:Seperator];
     [Seperator release];
}
if(indexPath.section==5)
{
    cell.textLabel.text=[self.GenderCellData objectAtIndex:indexPath.row];
    cell.textLabel.textColor=CELL_TEXT_COLOR;
    cell.textLabel.font=CELL_FONT;
}
else
{
    cell.textLabel.text=@"Cells";
    cell.textLabel.font=CELL_FONT;
}
return cell;
}

Теперь, когда я касаюсь ячейки, она выделяется синим цветом над всеми подпредставлениями. Как изменить рамку и цвет выделения?

Ответы [ 2 ]

0 голосов
/ 16 июля 2015

Я сталкиваюсь с той же проблемой сегодня, и я решил с помощью этого кода

Во-первых, внутри моей пользовательской ячейки init

     self.customerbgImageview = [UIImageView new];
    [self.customerbgImageview setFrame:CGRectMake(0 , 11, Width, 66)];
    [self.customerbgImageview setBackgroundColor:UIColor_RGB(0, 255, 255, 0.5)];
    [self addSubview:self.customerbgImageview];

Второй набор selectionStyle нет

cell.selectionStyle = UITableViewCellSelectionStyleNone;

третий в таблице метод

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    CustomOrderTableViewCell *cell = (CustomOrderTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
    [cell.customerbgImageview setHidden:NO];

}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
    CustomOrderTableViewCell *cell = (CustomOrderTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
    [cell.customerbgImageview setHidden:YES];
}
0 голосов
/ 08 января 2010

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

Например:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 20, 30, 40)];
view.backgroundColor = [UIColor redColor];
cell.selectedBackgroundView = view;
[view release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...