我有一个UITableViewCell,它链接到一个对象,我需要判断该单元格是否可见.从我所做的研究来看,这意味着我需要以某种方式访问包含它的UITableView(从那里,有几种方法可以判断它是否可见).所以我想知道UITableViewCell是否有指向UITableView的指针,或者有没有其他方法可以从单元格中获取指针?

推荐答案

为避免判断IOS版本,请从单元视图反复向上查看超级视图,直到找到UITableView:

Objective-C

id view = [cellInstance superview];

while (view && [view isKindOfClass:[UITableView class]] == NO) {
    view = [view superview]; 
}

UITableView *tableView = (UITableView *)view;

Swift

var view = cellInstance.superview
while (view != nil && (view as? UITableView) == nil) {
  view = view?.superview
}
        
if let tableView = view as? UITableView {
   tableView.beginUpdates()
   tableView.endUpdates()
}

Ios相关问答推荐

如何在SwiftUI中绑定文本字段,同时仍使用它来存储Collection 夹?

有没有办法观察滚动的SwiftUI图表的内容偏移量?

使用AVCaptureEventInteraction捕获音量按键快门

自定义UIControl不适用于UITapGestureRecognizer

如何在SwiftUI中为带有CornerRadius的矩形创建下边框?

SwiftUI 点击列表内不会触发 Select

swiftui动画如何实时确定不对称过渡

AVAudioRecord 没有音频

如何链式设置 AttributeContainer 的 UIKit 属性?

ionic 4 - 编译 ios - 来自项目Pods的目标GoogleDataTransport中的问题

SwiftUI 动画:为什么容器视图在移动?我很难理解这种行为

SwiftUI 图像与下拉视图切换一起 skip

一个 SwiftUI 视图中的多个垂直滚动视图

通过 tuist/XcodeProj 以编程方式将文件添加到本机目标

从远程通知启动时,iOS 应用程序加载错误

iOS,Swift 5,AppDelegate open url / .onOpenUrl - 如何找到调用我的自定义方案的调用应用程序

Xcode - 错误 ITMS-90635 - Bundle 包中的 Mach-O 无效 - 提交到 App Store

如何用 CAShapeLayer 和 UIBezierPath 画一个光滑的圆?

iOS 7 及更高版本: for each 视图控制器设置状态栏样式

请在您的 Podfile 中为此目标指定一个平台?