我正在使用This Example进行动态扩展单元格。此示例显示如何使用数据模型扩展单元格。但我需要的是,当一个单元格点击时,它会获取要扩展的记录数量。我试图做如下。但我不能达到我想要的。请有人帮助我。
这就是我如何动态地将样本数据添加到我的Datamodel。
df1[4:8] <- lapply(df1[4:8], na.aggregate, FUN = median)
这就是我获取tableview记录数的方法
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
DataModel.sampleDetails = ["Sample 1","sample 2","sample 3"]
//historyTable.beginUpdates()
switch expandedIndex {
case .None:
expandedIndex = NSIndexPath(forRow: indexPath.row + 1, inSection: indexPath.section)
case .Some(let index) where index.row == indexPath.row:
tableView.deselectRowAtIndexPath(indexPath, animated: false)
case .Some(let index) where index.row == indexPath.row + 1:
expandedIndex = nil
tableView.deselectRowAtIndexPath(indexPath, animated: false)
case .Some(let index) where index.row < indexPath.row:
expandedIndex = nil
self.tableView(tableView, didSelectRowAtIndexPath: NSIndexPath(forRow: max(0,indexPath.row - 1), inSection: indexPath.section))
default:
expandedIndex = nil
expandedIndex = NSIndexPath(forRow: indexPath.row + 1, inSection: indexPath.section)
}
//historyTable.endUpdates()
}
仅当我更改下面的代码时才有效
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sample = !(DataModel.sampleDetails.isEmpty) ? DataModel.sampleDetails.count : 0
return expandedIndex != nil ?
viewModel.count() + sample :
viewModel.count()
}
我不知道是什么问题。
请帮帮我
答案 0 :(得分:1)
您已在didSelectRow上设置dataModel.sampleDetails。
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { }
但是
try {
Properties prop = new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
prop.put(Context.SECURITY_AUTHENTICATION, "simple");
prop.put(Context.SECURITY_PRINCIPAL,"sandeep.p");
prop.put(Context.SECURITY_CREDENTIALS,"Password@12");
prop.put(Context.PROVIDER_URL, "LDAP://10.141.144.5:389");
try {
LdapContext ctx1 =new InitialLdapContext(prop,null);
String uname="sandeep.p";
String oldPassword="Password@12";
String newPassword="Password@123";
String quotedPassword = "\"" + newPassword + "\"";
char unicodePwd[] = quotedPassword.toCharArray();
byte pwdArray[] = new byte[unicodePwd.length * 2];
for (int i=0; i<unicodePwd.length; i++) {
pwdArray[i*2 + 1] = (byte) (unicodePwd[i] >>> 8);
pwdArray[i*2 + 0] = (byte) (unicodePwd[i] & 0xff);
}
ModificationItem[] mods = new ModificationItem[1];
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
new BasicAttribute("UnicodePwd", pwdArray));
System.out.println("connects");
ctx1.modifyAttributes(uname, mods);
System.out.println("changed");
} catch (AuthenticationNotSupportedException ex) {
/* Wrong SECURITY_AUTHENTICATION, it may be none, simple or Strong*/
System.out.println("The authentication is not supported by the server "+ex);
} catch (AuthenticationException ex) {
System.out.println(" server "+ex);
} catch (NamingException ex) {
System.out.println("error when trying to create the context "+ex);
}
} catch (Exception e) {
System.out.println("Exception "+e);
}
在设置DataModel.sampleDetails之前调用。所以你应该把这一行放在viewDidLoad()上。这将解决您的问题