【问题标题】:iPhone application not working on iPhone 5s iOS 9.2iPhone 应用程序无法在 iPhone 5s iOS 9.2 上运行
【发布时间】:2015-12-22 06:19:42
【问题描述】:

我的 iPhone 应用程序在 tableview 上具有复选标记功能,在 iPhone 6 上一切正常,但在 iPhone 5s 上遇到问题。如果我选​​择行,复选标记功能不起作用。我无法找出确切的原因。如何检查问题?请帮我。 这是我的UITableView

委托方法代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   selectedTransIdArray = [NSMutableArray arrayWithArray:userSession.transactionArray];   
NSLog(@"selectedTransIdArray first %@",selectedTransIdArray);

NSString *state = [dataTransArray objectAtIndex:indexPath.row];

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if(cell.accessoryType == UITableViewCellAccessoryNone)
{
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
    [selectedTransIdArray addObject:state];
    userSession.transactionArray = selectedTransIdArray;
}
else
{
    cell.accessoryType = UITableViewCellAccessoryNone;
    [selectedTransIdArray removeObject:state];
    userSession.transactionArray = selectedTransIdArray;
}

NSLog(@"selectedTransIdArray %@",selectedTransIdArray);
userSession.transactionArray = selectedTransIdArray;
[[NSUserDefaults standardUserDefaults] setObject:selectedTransIdArray forKey:@"aKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

}

【问题讨论】:

  • 复选标记功能是什么意思。能否请您发布您的代码?
  • 你添加了什么功能?您是否在情节提要中或以编程方式添加了 UI。
  • 您确定您的桌面视图在 iPhone 5 上不会太宽吗?

标签: ios objective-c uitableview ios9.2


【解决方案1】:

你必须编写一个算法来告诉你该行数据是否被检查。 并相应地更改检查对象索引值的值

if (indexPath.row == checked){
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}

【讨论】:

    【解决方案2】:

    我认为您正在检查的条件未按预期运行。检查单元格的附件类型不起作用,您可以检查state 是否存在于selectedTransIdArray 中,就像这样

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
       selectedTransIdArray = [NSMutableArray arrayWithArray:userSession.transactionArray];   
    NSLog(@"selectedTransIdArray first %@",selectedTransIdArray);
    
    NSString *state = [dataTransArray objectAtIndex:indexPath.row];
    
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if(![selectedTransIdArray containsObject:state])
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        [selectedTransIdArray addObject:state];
    }
    else
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
        [selectedTransIdArray removeObject:state];
    }
    
    NSLog(@"selectedTransIdArray %@",selectedTransIdArray);
    userSession.transactionArray = selectedTransIdArray;
    [[NSUserDefaults standardUserDefaults] setObject:selectedTransIdArray forKey:@"aKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    }
    

    【讨论】:

      猜你喜欢
      • 2016-10-29
      • 2014-09-27
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 2014-08-31
      • 1970-01-01
      相关资源
      最近更新 更多