我使用了名为“ExpandableTableView”的第三方可扩展表格 View ,当我想在我的 View 中使用自定义按钮扩展特定的单个部分时。我的代码片段是:
UIView *view=Gesture.view;
isFirsTime=NO;
//NSLog(@"%ld",(long)view.tag);
for (int h=0; h<dicAll.count; h++)
{
NSString *strRegisterId=[[[dictStatndardDefectsResult valueForKey"defectdata:"]valueForKey"projectdefectid"]objectAtIndex:h];
NSString *strBtnTag=[NSString stringWithFormat"%ld",(long)view.tag];
if ([strRegisterId isEqualToString:strBtnTag])
{
btnIndex=h;
// NSLog(@"%ld",(long)btnIndex);
isTappedMarker=YES;
}
}
NSMutableArray *indexPaths=[[NSMutableArray alloc]init];
[indexPaths addObject:[NSIndexPath indexPathForRow:0 inSection:btnIndex]];
NSLog(@"%@",arrDefectImages);
NSLog(@"numberOfRowsInSection: %ld",(long)[self tableView:tblSupplierDefect numberOfRowsInSection:btnIndex]);
[tblSupplierDefect beginUpdates];
[self.tblSupplierDefect insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];
[tblSupplierDefect endUpdates];
btnIndex 是我要扩展的节号。
Best Answer-推荐答案 strong>
我通过使用这个实现了类似的目标:
func didTapOnHeader(tapGesture: UITapGestureRecognizer) {
let view = tapGesture.view as! ViewHeader
// collapse if already expended.
if view.tag == self.dataBinder.selectedSection {
//collaps the section
self.dataBinder.selectedSection = nil
self.tableView.reloadSections(NSIndexSet(index:view.tag), withRowAnimation: UITableViewRowAnimation.Automatic)
}else {
// collapse last selected section, at a time one section should be selected.
self.dataBinder.selectedSection = nil
self.tableView.reloadData()
//expand plan details
self.dataBinder.selectedSection = view.tag
self.tableView.reloadSections(NSIndexSet(index:view.tag), withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = ViewHeader.instanceFromNib()
view.tag = section
let gesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.didTapOnHeader(_))
view.addGestureRecognizer(gesture)
//### Assignment ###
view.planDescriptionLabel.text = plan.planDescription
return view
}
这将关闭以前选择的部分,并且每次只展开一个部分。
关于ios - 如何扩展单个特定部分?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40714580/
|