在选择tableviewcell时,我改变了tableviewcell的颜色。
当我在tableViewCell上选择单元格并滚动其他一些也被选中的单元格时。
滚动后其他单元格也受影响
这是我的代码
static NSString *identifier = @"TBDCreateGamePlayerCell";
TBDCreateGamePlayerCell *playerCell = (TBDCreateGamePlayerCell *)[tableView dequeueReusableCellWithIdentifier:@"TBDCreateGamePlayerCell"];
if (!playerCell) {
NSLog(@"creating a new cell : %d",row);
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TBDCreateGamePlayerCell" owner:nil options:nil];
playerCell = [nib objectAtIndex:0];
}
答案 0 :(得分:0)
您必须实现此委托方法:
[Test]
public void SendTotalOrder_SendAllItemsToProducer_OneSentOrder()
{
//Arrange
Order order = new Order();
Guest guest = new Guest(1, order);
Producer producer = new Producer("Thomas", "Guldborg", "Beverage producer");
DataGridView dataGridView = new DataGridView { BindingContext = new BindingContext() };
order.MenuItemId = 1;
order.Quantity = 1;
//Act
guest.AddItem();
dataGridView.DataSource = guest.SendOrderOverview();
guest.SendOrder(dataGridView);
dataGridView.DataSource = producer.OrderOverview();
var guestTableOrder = producer.OrderOverview()
.Where(orders => orders.gtid == guest.GuestTableId)
.Select(producerOrder => producerOrder.gtid)
.Single();
//Assert
Assert.That(guestTableOrder, Is.EqualTo(guest.GuestTableId));
}
在此方法中,将单元格背景更改回默认颜色。
来自Apple Docs:
讨论
表视图就在此之前将此消息发送给其委托 它使用单元格绘制一行,从而允许代理人 在显示单元格对象之前自定义它。这种方法给出了 委托有机会覆盖先前设置的基于状态的属性 通过表格视图,例如选择和背景颜色。之后 委托返回,表视图仅设置alpha和frame 属性,然后仅在向行或向外滑动动画时动画。
答案 1 :(得分:0)
请看下面的代码......
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
selected_index= indexPath.row;
[tableView reloadData];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
cell.accessoryType=UITableViewCellAccessoryNone;
for (UIView *view in cell.contentView.subviews) {
[view removeFromSuperview];
}
if(indexPath.row==selected_index)
{
cell.contentView.backgroundColor = [UIColor whiteColor];
}
else
{
cell.contentView.backgroundColor = [UIColor clearColor];
}
}