ml-opensource / fzaccordiontableview Goto Github PK
View Code? Open in Web Editor NEWFZAccordionTableView transforms your regular UITableView into an accordion table view.
License: MIT License
FZAccordionTableView transforms your regular UITableView into an accordion table view.
License: MIT License
If you have a lot of section items and drag the whole tableview so that only the last section is visible and attempt to close it crashes.
I've replicated in the example project and in my own project.
2016-06-18 22:20:21.886 FZAccordionTableViewExample[19251:319019] *** Assertion failure in -[UITableViewRowData rectForHeaderInSection:heightCanBeGuessed:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/UITableViewRowData.m:1746 2016-06-18 22:20:21.892 FZAccordionTableViewExample[19251:319019] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect of header in invalid section (4)' *** First throw call stack: ( 0 CoreFoundation 0x00b07494 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x005c1e02 objc_exception_throw + 50 2 CoreFoundation 0x00b0732a +[NSException raise:format:arguments:] + 138 3 Foundation 0x0023d322 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 118 4 UIKit 0x01b849e2 -[UITableViewRowData rectForHeaderInSection:heightCanBeGuessed:] + 244 5 UIKit 0x0191c608 -[UITableView rectForHeaderInSection:] + 89 6 FZAccordionTableViewExample 0x000d9592 -[FZAccordionTableView sectionForHeaderView:] + 274 7 FZAccordionTableViewExample 0x000d9b1b -[FZAccordionTableView tappedHeaderView:] + 379 8 FZAccordionTableViewExample 0x000d8135 -[FZAccordionTableViewHeaderView touchedHeaderView:] + 117 9 UIKit 0x01d45d04 _UIGestureRecognizerSendTargetActions + 168 10 UIKit 0x01d41bc2 _UIGestureRecognizerSendActions + 176 11 UIKit 0x01d3f6c0 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 929 12 UIKit 0x01d423b3 -[UIGestureRecognizer _delayedUpdateGesture] + 60 13 UIKit 0x01d48cfc ___UIGestureRecognizerUpdate_block_invoke898 + 86 14 UIKit 0x01d48b69 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 374 15 UIKit 0x01d338a2 _UIGestureRecognizerUpdate + 3407 16 UIKit 0x0182eefd -[UIWindow _sendGesturesForEvent:] + 1559 17 UIKit 0x018305b6 -[UIWindow sendEvent:] + 1137 18 UIKit 0x017d1be8 -[UIApplication sendEvent:] + 266 19 UIKit 0x017a6769 _UIApplicationHandleEventQueue + 7795 20 CoreFoundation 0x00a19e5f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 21 CoreFoundation 0x00a0faeb __CFRunLoopDoSources0 + 523 22 CoreFoundation 0x00a0ef08 __CFRunLoopRun + 1032 23 CoreFoundation 0x00a0e846 CFRunLoopRunSpecific + 470 24 CoreFoundation 0x00a0e65b CFRunLoopRunInMode + 123 25 GraphicsServices 0x0535e664 GSEventRunModal + 192 26 GraphicsServices 0x0535e4a1 GSEventRun + 104 27 UIKit 0x017aceb9 UIApplicationMain + 160 28 FZAccordionTableViewExample 0x000de01a main + 138 29 libdyld.dylib 0x03b23a25 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException
FZAccordionTableView.sectionForHeaderView method works wrong for first header. Somehow, [self rectForHeaderInSection:middleSection] in sectionForHeaderView returns a minor floating origin.y for first section. so, when user taps on first header, sectionForHeaderView returns NotFound, and it crashes in app in next line
Thank you for your work on this awesome Accordion. Unfortunately my app crashes in line 216 ( compareHeaderViewFrame = [self rectForHeaderInSection:middleSection];) of FZAccordionTableView.m after trying to close the last Accordion Section. I made the following steps:
2016-08-08 16:58:06.312 SBRStarbullsIOS[3965:1797140] *** Assertion failure in -[UITableViewRowData rectForHeaderInSection:heightCanBeGuessed:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.60.12/UITableViewRowData.m:1746
I am having trouble understanding how to change the text for the headers. I just see the .xib file of the headers, but in which file and where can I change the header title?
Hi i am using your FZAccordionTableView i am using this with segment control each segment control will show different data. the problem is when i select a section it expands until now its fine but without closing the section if i click on next segment the selected section remains opens for the selected segment as well
i am reloading the table but still can't achieve it .i want it to be closed how can i achieve it
Help would be great
thank you
I have requirement to show/open a child cell when selecting a cell. Is it possible to implement with this library ?
Setting the background color on UITableViewHeaderFooterView has been deprecated. Please use contentView.backgroundColor instead.
I want to close all the opened sections?
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x191d981c0 __exceptionPreprocess
1 libobjc.A.dylib 0x1907d055c objc_exception_throw
2 CoreFoundation 0x191d98094 +[NSException raise:format:]
3 Foundation 0x19282282c -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
4 UIKit 0x197f0bf78 __46-[UITableView _updateWithItems:updateSupport:]_block_invoke.996
5 UIKit 0x197c0ed78 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:]
6 UIKit 0x197c25b84 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:delay:options:animations:completion:]
7 UIKit 0x197dd81c0 -[UITableView _updateWithItems:updateSupport:]
8 UIKit 0x197dbc6a4 -[UITableView _endCellAnimationsWithContext:]
9 Kim Beach 0x10008f454 -[FZAccordionTableView toggleSection:withHeaderView:] (FZAccordionTableView.m:335)
10 Kim Beach 0x10008ee84 -[FZAccordionTableView tappedHeaderView:] (FZAccordionTableView.m:262)
11 Kim Beach 0x10008e3b8 -[FZAccordionTableViewHeaderView touchedHeaderView:] (FZAccordionTableView.m:69)
12 UIKit 0x1981a7a2c -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:]
13 UIKit 0x1981ab134 _UIGestureRecognizerSendTargetActions
14 UIKit 0x197d6c804 _UIGestureRecognizerSendActions
15 UIKit 0x197c0ad44 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:]
16 UIKit 0x19819b178 _UIGestureEnvironmentUpdate
17 UIKit 0x19819acd8 -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:]
18 UIKit 0x198199f94 -[UIGestureEnvironment _updateGesturesForEvent:window:]
19 UIKit 0x197c08f60 -[UIWindow sendEvent:]
20 UIKit 0x197bd9a44 -[UIApplication sendEvent:]
21 UIKit 0x1983c6ea8 __dispatchPreprocessedEventFromEventQueue
22 UIKit 0x1983c0910 __handleEventQueue
23 CoreFoundation 0x191d46278 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
24 CoreFoundation 0x191d45bc0 __CFRunLoopDoSources0
25 CoreFoundation 0x191d437c0 __CFRunLoopRun
26 CoreFoundation 0x191c72048 CFRunLoopRunSpecific
27 GraphicsServices 0x1936f5198 GSEventRunModal
28 UIKit 0x197c44818 -[UIApplication _run]
29 UIKit 0x197c3f550 UIApplicationMain
30 Kim Beach 0x10009453c main (AppDelegate.swift:19)
31 (Missing) 0x190c545b8 (Missing)
The problem happens when I tap a section and, while the animation is still running, quick tap another section.
lldb message:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[FZAccordionTableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]: row (0) beyond bounds (0) for section (1).'
The table view is configured as follows:
self.tableView.allowMultipleSectionsOpen = NO;
self.tableView.enableAnimationFix = YES;
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 124;
Couldn't find requirements in the description.
Thanks for the help
This seems to be not working how to implement can you help me sorry for troubling as am fresher
(void)tableView:(FZAccordionTableView *)tableView willOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header
{
AccordionHeaderView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:kAccordionHeaderViewReuseIdentifier];
headerView.titleLabel.text=@"hi";
}
(void)tableView:(FZAccordionTableView *)tableView didOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header
{
AccordionHeaderView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:kAccordionHeaderViewReuseIdentifier];
headerView.titleLabel.text=@"hi";
}
Hi,
Thanks for making such great flexible library. we are looking for pure swift version of "FZAccordionTableView.swift" rather than using bridge header.
Do you have any plans for converting this from objective C to Swift ?
Thanks
Senthil
When i dont want to use delegate of tableview which sets height of section height, there is a problem about refresh issue. After several touches on sections, cell of related section is breaking down(ui problem). i guess it is about layoutifneeded after expand the section
Hi,
Would kindly like to request for help regards to opening of sections. I have 5 sections and randomly the 3rd section isnt sensitive at times. I need to tap below the section view in order to open it. Do you have any advise for this?
Thanks again for this great library !
When the header section collapsed, the viewAssignment will be hidden
When the header section expended, the viewAssignment view will show. Where do I config that.
func tableView(_ tableView: FZAccordionTableView, willOpenSection section: Int, withHeader header: UITableViewHeaderFooterView?) {
let cell = tableView.dequeueReusableHeaderFooterView(withIdentifier: ReviewHeader.kAccordionHeaderViewReuseIdentifier) as! ReviewHeader
cell.viewAssignment.isHidden = false
}
func tableView(_ tableView: FZAccordionTableView, willCloseSection section: Int, withHeader header: UITableViewHeaderFooterView?) {
let cell = tableView.dequeueReusableHeaderFooterView(withIdentifier: ReviewHeader.kAccordionHeaderViewReuseIdentifier) as! ReviewHeader
cell.viewAssignment.isHidden = true
}
Thank a
Hi Sorry to disturb you again i have placed a imageview in the headerView i want to show different images when section is opened and closed.But it seems to be not happening any help would be great
here is my code
and that too i want to change only the current expanded section
(void)tableView:(FZAccordionTableView *)tableView didOpenSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header
{
headerViewC.arrowImageView.image=[UIImage imageNamed:@"CollapseArrow.png"];
[tableViewAccord addSubview:segmentedControl1];
NSLog(@"OPENED");
}
(void)tableView:(FZAccordionTableView *)tableView didCloseSection:(NSInteger)section withHeader:(UITableViewHeaderFooterView *)header
{
headerViewC.arrowImageView.image=[UIImage imageNamed:@"ExpandArrow.png"];
[tableViewAccord shouldPositionParallaxHeader];
NSLog(@"CLOSED");
}
Hello Sir,
When i delete row from table and set multiple section open properties off .When i select any header app becomes crash.
Thanks and Regards
Ankush
I created different tableviewcell XIB files for each section. When i open cell in order like 2,1,0(index) , everything works as expected. But when i expand 0 index cell, scroll to the end tap into 1 index. Part of 1 index cell shows under header. To be clear, my header is not transparent.
How can i solve it? or is this a bug?
How can we disable all animations open/close from your lib?
Hello,
First thanks for create this, currently I'm using your pod and I have to implement certain functionality after the user scroll up or down the table view, so I was trying to use the following UIScrollDelegate methods in my view controller (which contains a FZAccordionTableView):
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0);
// called on finger up if the user dragged. decelerate is true if it will continue moving afterwards
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
Basically they never get called, in order to fix this (the first method for example) I added this method inside your class FZAccordionTableView.m
:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { [self.subclassDelegate scrollViewWillEndDragging:scrollView withVelocity:velocity targetContentOffset:targetContentOffset]; }
In summary looks like FZAccordionTableView is not propagating the UIScrollDelegate methods.
I have implemented your plugin in my project and I am getting following exception:
MyProject[3972:75815] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:
(
0 CoreFoundation 0x0000000110f88d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001109fadeb objc_exception_throw + 48
2 CoreFoundation 0x0000000110e49cc5 -[__NSArrayM insertObject:atIndex:] + 901
3 UIKit 0x0000000111dfc439 __46-[UITableView _updateWithItems:updateSupport:]_block_invoke1029 + 180
4 UIKit 0x0000000111d75838 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 582
5 UIKit 0x0000000111d75c6d +[UIView(UIViewAnimationWithBlocks) animateWithDuration:delay:options:animations:completion:] + 105
6 UIKit 0x0000000111dfc048 -[UITableView _updateWithItems:updateSupport:] + 4590
7 UIKit 0x0000000111df45a0 -[UITableView _endCellAnimationsWithContext:] + 15360
8 MyProject 0x000000010f69357c -[FZAccordionTableView tappedHeaderView:] + 924
9 MyProject 0x000000010f691bc9 -[FZAccordionTableViewHeaderView touchedHeaderView:] + 89
10 UIKit 0x00000001121bcb28 _UIGestureRecognizerSendTargetActions + 153
11 UIKit 0x00000001121b919a _UIGestureRecognizerSendActions + 162
12 UIKit 0x00000001121b7197 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 843
13 UIKit 0x00000001121bf655 ___UIGestureRecognizerUpdate_block_invoke898 + 79
14 UIKit 0x00000001121bf4f3 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 342
15 UIKit 0x00000001121ace75 _UIGestureRecognizerUpdate + 2634
16 UIKit 0x0000000111d3948e -[UIWindow _sendGesturesForEvent:] + 1137
17 UIKit 0x0000000111d3a6c4 -[UIWindow sendEvent:] + 849
18 UIKit 0x0000000111ce5dc6 -[UIApplication sendEvent:] + 263
19 UIKit 0x0000000111cbf553 _UIApplicationHandleEventQueue + 6660
20 CoreFoundation 0x0000000110eae301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
21 CoreFoundation 0x0000000110ea422c __CFRunLoopDoSources0 + 556
22 CoreFoundation 0x0000000110ea36e3 __CFRunLoopRun + 867
23 CoreFoundation 0x0000000110ea30f8 CFRunLoopRunSpecific + 488
24 GraphicsServices 0x0000000115e4ead2 GSEventRunModal + 161
25 UIKit 0x0000000111cc4f09 UIApplicationMain + 171
26 MyProject 0x000000010faf9b92 main + 114
27 libdyld.dylib 0x0000000113f6492d start + 1
28 ??? 0x0000000000000001 0x0 + 1
)
I have used table view controller instead of uiviewcontroller (as in your sample code). It was working perfectly until it started to crash randomly when tapping on header for opening section. Sometimes it is crashing for specific record and sometimes it is not that predictable. Any thoughts?
Hi Kris Gaidis thank for your FZAccordionTableView guide it worked for me a great.But i have one small doubt How to show different names in section header Label for different sections.
for example:-on first section header it should be "FIRST"
on second it Should be "Second"
can you please post the anwer
Hi, is there any way to have nested accordions??
Thanks in advance.
Until which version is this library retro-compatible?
when I clicks on the multiple header view some times its header size getting freezing to very small and here is the attached code can you please let me know whats the issues ?
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == carTableView {
return carArr.count
}
else if tableView == tblExpandableFeederService {
return 1
}
else {
return autoArr.count
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView == carTableView {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? AutoTableViewCell
let carTblArr = carArr[indexPath.row]
cell?.autoImage.image = UIImage(url: URL(string:carTblArr.ImageUrl))
return cell!
}
else if tableView == autoTblView {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? AutoTableViewCell
let autoTblArr = autoArr[indexPath.row]
cell?.autoImage.image = UIImage(url: URL(string:autoTblArr.ImageUrl))
return cell!
}
else {
let cell = tableView.dequeueReusableCell(withIdentifier: "customcellfour", for: indexPath) as? CustomCellFour
cell?.lblViaDescription.text = busArr[indexPath.section].Via
cell?.lblTotalNumberOfService.text = busArr[indexPath.section].NumberofServices
return cell!
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == carTableView {
let configuration = ImageViewerConfiguration { config in
let carTblArr = carArr[indexPath.row]
config.image = UIImage(url: URL(string:carTblArr.ImageUrl))
}
present(ImageViewerController(configuration: configuration), animated: true)
}
else if tableView == autoTblView {
let configuration = ImageViewerConfiguration { config in
let autoTblArr = autoArr[indexPath.row]
config.image = UIImage(url: URL(string:autoTblArr.ImageUrl))
}
present(ImageViewerController(configuration: configuration), animated: true)
}
else {
}
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if tableView == tblExpandableFeederService {
return AccordionHeaderView.kDefaultAccordionHeaderViewHeight
}
else {
return 0
}
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
if tableView == tblExpandableFeederService {
return 120
}
else {
return 0
}
}
func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
if tableView == tblExpandableFeederService {
return 120
}
else {
return 0
}
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if tableView == tblExpandableFeederService {
let cell = tableView.dequeueReusableHeaderFooterView(withIdentifier: AccordionHeaderView.kAccordionHeaderViewReuseIdentifier) as? AccordionHeaderView
cell?.fromLbl.text = busArr[section].From
cell?.toLbl.text = busArr[section].To
cell?.routeLbl.text = busArr[section].RouteNo
cell?.borderView.layer.borderWidth = 1
cell?.borderView.layer.borderColor = UIColor(red:86/255, green:183/255, blue:249/255, alpha: 1).cgColor
return cell!
}
else {
return tableView.dequeueReusableHeaderFooterView(withIdentifier: "")
}
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if tableView == tblExpandableFeederService {
return 120
}
else {
return 275
}
}
// func tableView(_ tableView: FZAccordionTableView, willOpenSection section: Int, withHeader header: UITableViewHeaderFooterView?) {
//
// }
//
// func tableView(_ tableView: FZAccordionTableView, didOpenSection section: Int, withHeader header: UITableViewHeaderFooterView?) {
//
// }
//
// func tableView(_ tableView: FZAccordionTableView, willCloseSection section: Int, withHeader header: UITableViewHeaderFooterView?) {
// if tableView == carTableView {
//
// }
// else if tableView == autoTblView {
//
// }
// else {
// let cell = tableView.dequeueReusableHeaderFooterView(withIdentifier: AccordionHeaderView.kAccordionHeaderViewReuseIdentifier) as? AccordionHeaderView
// cell?.fromLbl.text = busArr[section].From
// cell?.toLbl.text = busArr[section].To
// cell?.routeLbl.text = busArr[section].RouteNo
// cell?.borderView.layer.borderWidth = 1
// cell?.borderView.layer.borderColor = UIColor(red:86/255, green:183/255, blue:249/255, alpha: 1).cgColor
//
// }
// }
//
// func tableView(_ tableView: FZAccordionTableView, didCloseSection section: Int, withHeader header: UITableViewHeaderFooterView?) {
// if tableView == carTableView {
//
// }
// else if tableView == autoTblView {
//
// }
// else {
// let cell = tableView.dequeueReusableHeaderFooterView(withIdentifier: AccordionHeaderView.kAccordionHeaderViewReuseIdentifier) as? AccordionHeaderView
// cell?.fromLbl.text = busArr[section].From
// cell?.toLbl.text = busArr[section].To
// cell?.routeLbl.text = busArr[section].RouteNo
// cell?.borderView.layer.borderWidth = 1
// cell?.borderView.layer.borderColor = UIColor(red:86/255, green:183/255, blue:249/255, alpha: 1).cgColor
//
// }
// }
Hi,
I got this error and I can't figure out why ?
Can you explain me what does it means ? I followed your example in my code.
Thank you
Crashing after updating to latest version 0.2.2
Assertion failure in -[FZAccordionTableView tappedHeaderView:], /Users/.........................................................Pods/FZAccordionTableView/FZAccordionTableView/FZAccordionTableView.m:259
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: sectionHeaderView'
Can this be because of the following line?
tableView.tableFooterView = UIView()
I am seeing a glitch with the animations of cells as sections are opened and closed. I've noticed you haven't committed anything to this framework for a while, so I am wondering if this may have anything to do with iOS 10.3 >
UPDATE: I can see the issue. The cells are appearing and disappearing above the section header view.
I want to new functionality add for Tableview all section expand when click on outer tableview button and again click then collapse all section. I need to these functionality any one help me.
*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x12cd46e40> is a part of cycle in its layer tree'
subclassDelegate and subclassDataSource need week property attributes. default strong.
Hello Team,
Any one help me for Tableview Header Text Color change and content view Background color change when collapse and expanding header time, means open section or close section time.
*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x12cd46e40> is a part of cycle in its layer tree'
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect of header in invalid section (1)'
*** First throw call stack:
(
0 CoreFoundation 0x0000000110b18d85 exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000011058cdeb objc_exception_throw + 48
2 CoreFoundation 0x0000000110b18bea +[NSException raise:format:arguments:] + 106
3 Foundation 0x000000010e3b6d5a -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198
4 UIKit 0x000000010f1ad921 -[UITableViewRowData rectForHeaderInSection:heightCanBeGuessed:] + 272
5 UIKit 0x000000010ef895d1 -[UITableView rectForHeaderInSection:] + 72
6 SampleApp 0x000000010d20a983 -[FZAccordionTableView sectionForHeaderView:] + 259
7 SampleApp 0x000000010d20aebd -[FZAccordionTableView tappedHeaderView:] + 349
8 SampleApp 0x000000010d209749 -[FZAccordionTableViewHeaderView touchedHeaderView:] + 89
9 UIKit 0x000000010f33db28 _UIGestureRecognizerSendTargetActions + 153
10 UIKit 0x000000010f33a19a _UIGestureRecognizerSendActions + 162
11 UIKit 0x000000010f338197 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 843
12 UIKit 0x000000010f340655 ___UIGestureRecognizerUpdate_block_invoke898 + 79
13 UIKit 0x000000010f3404f3 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 342
14 UIKit 0x000000010f32de75 _UIGestureRecognizerUpdate + 2634
15 UIKit 0x000000010eeba48e -[UIWindow _sendGesturesForEvent:] + 1137
16 UIKit 0x000000010eebb6c4 -[UIWindow sendEvent:] + 849
17 UIKit 0x000000010ee66dc6 -[UIApplication sendEvent:] + 263
18 UIKit 0x000000010ee40553 _UIApplicationHandleEventQueue + 6660
19 CoreFoundation 0x0000000110a3e301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
20 CoreFoundation 0x0000000110a3422c __CFRunLoopDoSources0 + 556
21 CoreFoundation 0x0000000110a336e3 __CFRunLoopRun + 867
22 CoreFoundation 0x0000000110a330f8 CFRunLoopRunSpecific + 488
23 GraphicsServices 0x00000001138f9ad2 GSEventRunModal + 161
24 UIKit 0x000000010ee45f09 UIApplicationMain + 171
25 SampleApp 0x000000010d0df4ff main + 111
26 libdyld.dylib 0x000000011120e92d start + 1
27 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
I've successfully implemented a few FZAccordionTableViews in our App, but we've come up with the need to add a second "level".
That is, what we're looking to accomplish is:
HEADER (expandable)
--- SUB HEADER (expandable)
-------- ROW (non-expandable)
Is this a feature/functionality that could possibly be added ?
If anyone has any ideas/pointers, I'd be happy to implement the solution myself, but I'm at a bit of a loss as to where to start.
After opening any section in the tableview, selecting a cell in the subsection is not responsive at first time. Then, all cells are mixed up and they all point at wrong indexpath.row
To reproduce:
Add the didDeselectRowAtIndexPath delegate function in the firstviewcontroller.m file in the example provided
(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%d", indexPath.row);
}
Any solution to that issue?!
I have an uparrow and downarrow image to show in the header. When i open a section, up arrow is correctly getting changed, but when i scroll the tableview i can see the second section image is also getting changed any without selection. How to fix this?
The separator for the tableview sections becomes invisible when a section above is expanded.
If I collapse/expand section 1 the separator between section 1 & section 2 goes away. To get the separator back I have to expand section 2.
Error when expand cell with footer and collpase, the footer is hiding.
Some times Touch on header view is not recognised. and it is mostly occurring when your header view is released from memory.
Steps to Reproduce
I guess there is problem with tap gesture delegate.
how to manually close all the section??
FZAccordionTableViewHeaderView should implement the following constructor when header is not initialised with nib.
- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithReuseIdentifier:reuseIdentifier];
if (self) {
[self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(touchedHeaderView:)]];
}
return self;
}
I want to collapse all sections when I reload data.
When I reload data, expanded section still remain.
Please help me if you have any suggestion.
I want to make the table expandable to its full size with every change. To do this, I increase the altitude constant for each launch of WillOpenSection and reduce it in WillCloseSection. But Lower cells hide themselves while animation. Is there are any way to fix this? Thanx for help.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.