【问题标题】:Cell subviews transparency while selected/highlighted选择/突出显示时单元格子视图的透明度
【发布时间】:2014-06-13 06:11:20
【问题描述】:

我想知道是什么让 UITableViewCell 的子视图(例如标签)的背景在选择/突出显示时变得透明。对于我的内容视图的某些子视图,我需要避免这种行为。我尝试覆盖 setSelected / setHighlighted 方法并取得了一些成功,但我无法重现这种透明度。有什么想法吗?

【问题讨论】:

    标签: select uitableview highlight


    【解决方案1】:

    我认为我使用以下代码得到了一些接近的行为

    - (void) setView:(UIView*) view asHighlighted:(BOOL) highlighted {
    
        if([view isKindOfClass:[UILabel class]]){
            UILabel* label = (UILabel*) view;
            [label setHighlighted:highlighted];
        }
    
        else if([view isKindOfClass:[UIImageView class]]){
            UIImageView* imageView = (UIImageView*) view;
            [imageView setHighlighted:highlighted];
        }
    
        if(highlighted){
    
            [view.undoManager registerUndoWithTarget:view
                                            selector:@selector(setBackgroundColor:)
                                              object:view.backgroundColor];
    
            view.backgroundColor = [UIColor clearColor];
        }
        else {
            [view.undoManager undo];
        }
    
        for(UIView* subview in view.subviews){
            [self setView:subview asHighlighted:highlighted];
        }
    }
    

    不确定这是使用 UndoManager 的正确方法,但它确实有效。您可以在 setSelected 和 setHighlighted 中使用它来模拟 UITableViewCells 的选择行为

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多