访问iOS 7隐藏的UITableViewCellScrollView?

Posted

技术标签:

【中文标题】访问iOS 7隐藏的UITableViewCellScrollView?【英文标题】:Access iOS 7 hidden UITableViewCellScrollView? 【发布时间】:2013-10-03 15:08:00 【问题描述】:

Apple 在 ios 7 中更改了 UITableViewCell 层次结构

使用 iOS 6.1 SDK

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

使用 iOS 7 SDK

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

我的问题是 UITableViewCellScrollView.layer.masksToBounds = TRUE 默认情况下,我需要它是假的。

我尝试了以下方法:

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

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

但他们都没有改变UITableViewCellScrollView。 如何访问此滚动视图?

【问题讨论】:

【参考方案1】:

访问新 CellScrollView 的唯一方法是在创建单元格超级视图后访问它。

我添加了以下cellForRowAtIndexPath

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

我认为 Apple 应该为我们提供一种无需黑客攻击即可访问此新 ScrollView 的方法。

【讨论】:

【参考方案2】:

目标-C:

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

斯威夫特:

let cellScrollView = cell.contentView.superview
cellScrollView?.clipsToBounds = false

【讨论】:

以上是关于访问iOS 7隐藏的UITableViewCellScrollView?的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 使用 separatorInset 隐藏分隔符在 iOS 11 中失败

滚动 UITableviewcontroller 时包含 UITextfield 的 UITableviewcell 隐藏

包含UITextfield的UITableviewcell在滚动UITableviewcontroller时隐藏

Swift3:UITableViewCell 和 UIButton - 通过单击 UIButton 显示和隐藏 UITableViewCell

iOS 7 UITableViewCell 剪辑暂时

在 UITableViewCell 中添加渐变隐藏 UILabel 文本