Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access iOS 7 hidden UITableViewCellScrollView?

Apple change the UITableViewCell hierarchy in iOS 7

Using iOS 6.1 SDK

<UITableViewCell>
   | <UITableViewCellContentView>
   |    | <UILabel>

Using iOS 7 SDK

<UITableViewCell>
   | <UITableViewCellScrollView>
   |    | <UITableViewCellContentView>
   |    |    | <UILabel>

My problem is that the UITableViewCellScrollView.layer.masksToBounds = TRUE by default and i need it to be false.

I tried the following:

UIView * scrollView = [self.subviews objectAtIndex:0];
scrollView.layer.masksToBounds = NO;

and

[self.myLabel.superview.layer setMasksToBounds:NO];

But non of them changes the UITableViewCellScrollView. How can i access this scrollview?

like image 727
Danpe Avatar asked Oct 03 '13 15:10

Danpe


2 Answers

The only way to access the new CellScrollView is by accessing the cell superview after it was created.

I added the following cellForRowAtIndexPath:

cell = [[UICustomTableViewCell alloc] init];
UIView *cellScrollView = cell.myLabel.superview;
[cellScrollView.layer setMasksToBounds: NO];

I think Apple should give us a way to access this new ScrollView without hacking.

like image 167
Danpe Avatar answered Nov 14 '22 16:11

Danpe


Objective-C:

UIView *cellScrollView = [[cell contentView] superview];
[cellScrollView setClipsToBounds:NO];

Swift:

let cellScrollView = cell.contentView.superview
cellScrollView?.clipsToBounds = false
like image 2
Aliaksandr Bialiauski Avatar answered Nov 14 '22 14:11

Aliaksandr Bialiauski