zoukankan      html  css  js  c++  java
  • UItableViewCell滑动删除时,调整cell子视图的位置大小

    UItableViewCell滑动删除时,调整cell的位置大小是否显示等。
    CustomTableViewCell为UITableViewCell的子类,在实现文件中重写willTransitionToState方法。
    willTransitionToState是在cell改变显示状态的时候调用,有三种状态:
    typedef NS_OPTIONS(NSUInteger, UITableViewCellStateMask) {
    UITableViewCellStateDefaultMask = 0, //普通状态
    UITableViewCellStateShowingEditControlMask = 1 << 0, //编辑状态
    UITableViewCellStateShowingDeleteConfirmationMask = 1 << 1 //删除状态
    };
    具体实现方法:

    - (void) willTransitionToState:(UITableViewCellStateMask)state{
        [super willTransitionToState:state];
        //UITableViewCellStateShowingDeleteConfirmationMask
        if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) {
            for (UIView *subview in self.subviews) {
                if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
                    //this is delete button
                }
                
                if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellContentView"]) {
                    //this is contentView
                    for (UIView *sub in subview.subviews) {
                        if ([NSStringFromClass([sub class]) isEqualToString:@"UILabel"]) {
                            UILabel *subLabel = (UILabel *)sub;
                            if (subLabel.tag == 8) {
                                subLabel.hidden = YES;
                            }
                        }
                        if ([NSStringFromClass([sub class]) isEqualToString:@"UIImageView"]) {
                            UILabel *subImageView = (UILabel *)sub;
                            if (subImageView.tag == 11) {
                                subImageView.hidden = YES;
                            }
                        }
                    }
                }
            }
        }
        //UITableViewCellStateDefaultMask
        if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateDefaultMask){
            for (UIView *subview in self.subviews) {
                if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
                    //this is delete button
                }
                
                if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellContentView"]) {
                    //this is contentView
                    for (UIView *sub in subview.subviews) {
                        if ([NSStringFromClass([sub class]) isEqualToString:@"UILabel"]) {
                            UILabel *subLabel = (UILabel *)sub;
                            if (subLabel.tag == 8) {
                                subLabel.hidden = NO;
                            }
                        }
                        if ([NSStringFromClass([sub class]) isEqualToString:@"UIImageView"]) {
                            UILabel *subImageView = (UILabel *)sub;
                            if (subImageView.tag == 11) {
                                subImageView.hidden = NO;
                            }
                        }
                    }
                }
            }
        }
    }
    

      

  • 相关阅读:
    绘制八卦阵
    绘制奥运五环
    绘制渐变的圆
    实验报告
    大学排名
    第一条爬虫
    自己的第一个网页
    科学计算与可视化
    类和正则表达(自动更正 代数运算)
    预测比赛
  • 原文地址:https://www.cnblogs.com/nanoCramer/p/3140255.html
Copyright © 2011-2022 走看看