ios - 禁用 TableView 中所有 subview 的用户交互

标签 ios objective-c uitableview user-interaction

我有一个 tableview 和它下面的按钮 View 。 我想禁用 tableview 中所有 subview 的用户交互,但是不应禁用 tableview 的滚动。 这是单击“预览”按钮时所必需的。 不应禁用按钮 View 。 欢迎提出建议。 我尝试了以下。但这不会启用滚动或按钮交互。

    - (IBAction)btnPreviewTapped:(id)sender {
for (UIView *eachView in self.view.superview.subviews) {
    if (eachView != formsContentTableView) {
        eachView.userInteractionEnabled = NO;
    }
}
formsContentTableView.userInteractionEnabled = YES;
self.buttonView.userInteractionEnabled = YES;
[self.btnPreview setTitle:@"Submit" forState:UIControlStateNormal];

最佳答案

我会创建一个属性 @property (nonatomic, assign) BOOL isPreview;,将其赋为 NO 作为初始值 self.isPreview = NO; 然后在 -tableView:cellForRowAtIndexPath: 当您创建单元格 subview 时,我会检查

if(self.isPreview) { 
    subview1.userInteractionEnabled = NO; 
    subview2.userInteractionEnabled = NO;
    // ... etc 
}

然后在您的 IBAction 中设置如下:

-(IBAction)btnPreviewTapped:(id)sender {
    if(self.isPreview) {
        self.isPreview = NO;
    } else {
        self.isPreview = YES;
    }
    [self.tableView reloadData];
}

-reloadData 方法将重绘可见单元格及其 subview ,但根据 self.isPreview subview 是否会对用户的触摸使用react。

关于ios - 禁用 TableView 中所有 subview 的用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222108/

相关文章:

objective-c - NSOperation & 单例 : Correct concurency design

ios - 从 UITableView 动画 UITableViewCell?

ios - tableView.reloadSections(sectionIndex,: . 无)无法正常工作

ios - 我将如何以编程方式更改单元格的背景颜色

php - iOS:如何使用给定 token 的 AFOAuth1Client

ios - 将 RGB 值转换为 UIColor?

objective-c - 由于UIWebView,Apple拒绝了 objective-c AFNetworking

ios - 如何弹出除一个之外的所有 View Controller ?

ios - 为什么我的 XML 解析器不断迭代 Swift 中的标签?

ios - iPhone SDK:CLocationAccuracy。什么常量映射到什么定位技术?