Git Product home page Git Product logo

fzaccordiontableview's People

Contributors

jeffaburt avatar kfuchs avatar kgaidis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fzaccordiontableview's Issues

Crash when only last section is visible and tapped to close

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.

screenshot 2016-06-18 22 20 44

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

ios 15 calculates sectionForHeaderView wrong

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

AccordionTableView crashes after closing the last section

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:

  • implemented Accordion View containing 4 sections with custom Header Views
  • section 4 is containing several cells.
  • when scrolling down at first the section headers dissapear and then the actual cells in section 4 beginn to scroll. As soon as only section 4 cells are visible, the app crashes when clicking on section 4 header view to close section 4.
  • apart from that, scrolling the last section works fine
  • you can close section 4 if you avoided scrolling section 4 before.

simulator screen shot 08 08 2016 17 10 13

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

Rename Section Headers

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?

Cells remain Expand

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
screen shot 2016-05-09 at 4 31 55 pm
screen shot 2016-05-09 at 4 33 25 pm

Setting the background color

Setting the background color on UITableViewHeaderFooterView has been deprecated. Please use contentView.backgroundColor instead.

Tableview crashes on toggleSection method.

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)

Crash after quick taps

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;

pragma Delegate methods optional

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";
}

Swift version of FZAccordionTableView

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

UITableViewAutomaticDimension layout issue for Header Views

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

Random insensitivity when opening section header

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 !

Customize the view in section header for Expansion and collapsing

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

ImageView Not changing

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");

}

Crashes when deleting sections

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

The cell is under header(not transparent header)

Screen Shot 2019-10-30 at 14 43 32

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?

Some UIScrollDelegate Methods are not working

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.

header cell not getting full width

capture d ecran 2016-04-20 a 16 31 08

as shown in picture the header cell not take all the width and stay with 320 px , how can i make it dynamic ?
because if i change in xib the size it will not fit in other devices

thanks

Crashing when tapping on section to open it

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?

Section Label Text

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

Multiple levels

Hi, is there any way to have nested accordions??

Thanks in advance.

sometimes header view freezing the small size

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
//
// }
// }

screen shot 2018-09-18 at 8 03 17 pm

Assertion Faliure

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()

Cells appearing above section header view at start and end of animation

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.

Layout error

*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x12cd46e40> is a part of cycle in its layer tree'

Retain cycle

subclassDelegate and subclassDataSource need week property attributes. default strong.

Layout error

*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x12cd46e40> is a part of cycle in its layer tree'

Crashed while tapping on header

*** 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

Implementing multiple levels

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.

Select cells in subsections is not working properly

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?!

Header Image not changing properly on tableview scroll

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?

UITableVIew separator becomes invisible

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.

Tap on headerView is not working

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

  1. First reload the tableview
  2. All section were closed for the first time
  3. Then try to scroll up until top 3 headers disappears and then release the scroll
  4. then tap on header view.
  5. no action will be received.

I guess there is problem with tap gesture delegate.

Missing initWithReuseIdentifier constructor in FZAccordionTableViewHeaderView

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;
}

Raiding the lower cells to themselves when expanding the table

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.