From 70902b1bff14e358667b3f9b71e19fc2f79eff11 Mon Sep 17 00:00:00 2001 From: Stephan Diederich Date: Thu, 22 Apr 2010 18:38:57 +0200 Subject: [PATCH] [UI] tableView banner gets assigned the overlay view's frame. Instead of using the overlayview method, craft a new one which specifically handles the bannerview. Additionally adjust scrollindicator and content insets. Closes #103 --- src/Three20UI/Sources/TTTableViewController.m | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Three20UI/Sources/TTTableViewController.m b/src/Three20UI/Sources/TTTableViewController.m index f0f14439a9..95591348cb 100644 --- a/src/Three20UI/Sources/TTTableViewController.m +++ b/src/Three20UI/Sources/TTTableViewController.m @@ -161,6 +161,14 @@ - (void)resetOverlayView { } } +/////////////////////////////////////////////////////////////////////////////////////////////////// +- (void)addSubviewOverTableView:(UIView*)view { + NSInteger tableIndex = [_tableView.superview.subviews + indexOfObject:_tableView]; + if (NSNotFound != tableIndex) { + [_tableView.superview addSubview:view]; + } +} /////////////////////////////////////////////////////////////////////////////////////////////////// - (void)layoutOverlayView { @@ -646,9 +654,14 @@ - (void)setTableBannerView:(UIView*)tableBannerView animated:(BOOL)animated { _tableBannerView = [tableBannerView retain]; if (_tableBannerView) { + self.tableView.contentInset = UIEdgeInsetsMake(0, 0, TTSTYLEVAR(tableBannerViewHeight), 0); + self.tableView.scrollIndicatorInsets = self.tableView.contentInset; _tableBannerView.frame = [self rectForBannerView]; _tableBannerView.userInteractionEnabled = NO; - [self addToOverlayView:_tableBannerView]; + _tableBannerView.autoresizingMask = (UIViewAutoresizingFlexibleWidth + | UIViewAutoresizingFlexibleTopMargin); + [self addSubviewOverTableView:_tableBannerView]; + if (animated) { _tableBannerView.top += TTSTYLEVAR(tableBannerViewHeight); @@ -658,6 +671,10 @@ - (void)setTableBannerView:(UIView*)tableBannerView animated:(BOOL)animated { _tableBannerView.top -= TTSTYLEVAR(tableBannerViewHeight); [UIView commitAnimations]; } + + } else { + self.tableView.contentInset = UIEdgeInsetsZero; + self.tableView.scrollIndicatorInsets = UIEdgeInsetsZero; } } }