• 排序的拆分,


     

    //order by price or time

    //1,高亮状态2,升降顺序

    -(void)sortByTime:(id)sender

     

    {

        NSArray *arr =  [self.fListArray sortedArrayUsingComparator:^NSComparisonResult(id item1, id item2) {

            HFFlight *flight1 = item1;

            HFFlight *flight2 = item2;

           //timebutton 排序

                NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

                dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm";

                NSDate *date1 = [dateFormatter dateFromString:flight1.orgDateTime1];

                NSDate *date2 = [dateFormatter dateFromString:flight2.orgDateTime1];

                NSComparisonResult result = [date1 compare:date2];

                if (timeButtonIsDescending) {

                    if (result == NSOrderedAscending) {

                        result = NSOrderedDescending;

                    }else if (result == NSOrderedDescending) {

                        result = NSOrderedAscending;

                    }else{

                        result= NSOrderedSame;

                    }

                }

                return result;

        }];

        

        //设置timebutton的状态,从高亮--》非高亮

        if (priceButtonIsDescending) {

            priceButtonIsHighlighted = NO;

            [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_down.png"] forState:UIControlStateNormal];

            [self.priceButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

        }else{

            priceButtonIsHighlighted = NO;

            [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_up.png"] forState:UIControlStateNormal];

            [self.priceButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

        }

        

        if (timeButtonIsDescending && timeButtonIsHighlighted) {

            timeButtonIsDescending = NO;

            [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_down_h.png"] forState:UIControlStateNormal];

            [self.timeButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }elseif(timeButtonIsHighlighted && !timeButtonIsDescending) {

            timeButtonIsDescending = YES;

            [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

            [self.timeButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }elseif(!timeButtonIsHighlighted && timeButtonIsDescending){

            timeButtonIsHighlighted = YES;

            [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

            [self.timeButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }else{

            timeButtonIsHighlighted = YES;

            [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_down_h.png"] forState:UIControlStateNormal];

            [self.timeButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }

     

        NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithArray:arr];

        self.fListArray = mutableArray;

        [self.expansionTableViewreloadData];

     

    }

     

     

    -(void)sortByPrice:(id)sender

     

    {

        

        NSArray *arr =  [self.fListArray sortedArrayUsingComparator:^NSComparisonResult(id item1, id item2) {

            HFFlight *flight1 = item1;

            HFFlight *flight2 = item2;

            HFCabin *cabin1 = [flight1.cabins objectAtIndex:0];

            HFCabin *cabin2 = [flight2.cabins objectAtIndex:0];

          

                

                if (priceButtonIsDescending) {//降序

                    if (cabin1.adultPrice > cabin2.adultPrice) {

                        return NSOrderedDescending;

                    } else if (cabin1.adultPrice < cabin2.adultPrice) {

                        return NSOrderedAscending;

                    } else {

                        return NSOrderedSame;

                    }

                }else{

                    

                    if (cabin1.adultPrice > cabin2.adultPrice) {

                        return NSOrderedAscending;

                    } else if (cabin1.adultPrice < cabin2.adultPrice) {

                        return NSOrderedDescending;

                    } else {

                        return NSOrderedSame;

                    }

                }

                

        }];

        //设置timebutton的状态,从高亮--》非高亮

        if (timeButtonIsDescending) {

            timeButtonIsHighlighted = NO;

            [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_up.png"] forState:UIControlStateNormal];

            [self.timeButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

        }else{

            timeButtonIsHighlighted = NO;

            [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_down.png"] forState:UIControlStateNormal];

            [self.timeButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

        }

        

        if (priceButtonIsHighlighted && priceButtonIsDescending) {

            priceButtonIsDescending = NO;

            [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

            [self.priceButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }elseif(priceButtonIsHighlighted && !priceButtonIsDescending) {

            priceButtonIsDescending = YES;

            [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_down_h.png"] forState:UIControlStateNormal];

            [self.priceButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }elseif(!priceButtonIsHighlighted && priceButtonIsDescending){

            priceButtonIsHighlighted = YES;

            [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_down_h.png"] forState:UIControlStateNormal];

            [self.priceButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }else{

            priceButtonIsHighlighted = YES;

            [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

            [self.priceButtonsetTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

        }

        

        NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithArray:arr];

        self.fListArray = mutableArray;

        [self.expansionTableViewreloadData];

     

    }

    -(void)sortFilght:(id)sender

    {

        UIButton *btn = (UIButton *)sender;

        if (btn.tag == 1) {

            if (priceButtonFirstIn) {

                

                if(priceButtonIsDescending){

                    priceButtonIsDescending = NO;

                    [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_down.png"] forState:UIControlStateNormal];

     

                }else{

                    priceButtonIsDescending = YES;

                    [btn setImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

     

                }

                priceButtonFirstIn = NO;

                timeButtonFirstIn = YES;

            }

        }else{

            if (timeButtonFirstIn) {

                if(timeButtonIsDescending){

                    timeButtonIsDescending = NO;

                }else{

                    timeButtonIsDescending = YES;

                }

                timeButtonFirstIn = NO;

                priceButtonFirstIn = YES;

            }

        }

        NSArray *arr =  [self.fListArray sortedArrayUsingComparator:^NSComparisonResult(id item1, id item2) {

            HFFlight *flight1 = item1;

            HFFlight *flight2 = item2;

            HFCabin *cabin1 = [flight1.cabins objectAtIndex:0];

            HFCabin *cabin2 = [flight2.cabins objectAtIndex:0];

            if (btn.tag == 1) {//pricebutton 排序

                

                if (priceButtonIsDescending) {//升序

                    if (cabin1.adultPrice > cabin2.adultPrice) {

                        return NSOrderedDescending;

                    } else if (cabin1.adultPrice < cabin2.adultPrice) {

                        return NSOrderedAscending;

                    } else {

                        return NSOrderedSame;

                    }

                }else{//降序

                    

                    if (cabin1.adultPrice > cabin2.adultPrice) {

                        return NSOrderedAscending;

                    } else if (cabin1.adultPrice < cabin2.adultPrice) {

                        return NSOrderedDescending;

                    } else {

                        return NSOrderedSame;

                    }

                }

                

                

            }else{//timebutton 排序

                NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

                dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm";

                NSDate *date1 = [dateFormatter dateFromString:flight1.orgDateTime1];

                NSDate *date2 = [dateFormatter dateFromString:flight2.orgDateTime1];

                NSComparisonResult result = [date1 compare:date2];

                if (timeButtonIsDescending) {

                    if (result == NSOrderedAscending) {

                        result = NSOrderedDescending;

                    }else if (result == NSOrderedDescending) {

                        result = NSOrderedAscending;

                    }else{

                        result= NSOrderedSame;

                    }

                }

                return result;

            }

            

        }];

        

        

        

     

        

        if (btn.tag == 1)//pricebutton.tag = 1

        {//pricebutton 排序

            if (timeButtonIsDescending)

            {//降序-》降序

                [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_up.png"] forState:UIControlStateNormal];

                [self.timeButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

                

            }else

            {//升序 --》升序

                [self.timeButtonsetImage:[UIImageimageNamed:@"icon_order_down.png"] forState:UIControlStateNormal];

                [self.timeButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

                

            }

           

           

     

            if (priceButtonIsDescending)

            {//降序--》升序

                priceButtonIsDescending = NO;

                [btn setImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

                [btn setTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

                

            }else

            {//升序---》降序

                priceButtonIsDescending = YES;

                [btn setImage:[UIImageimageNamed:@"icon_order_down_h.png"] forState:UIControlStateNormal];

                [btn setTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

                

            }

            

        }else

        {//timebutton 排序

           

            if (priceButtonIsDescending)

            {//降序-》降序

                [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_down.png"] forState:UIControlStateNormal];

                [self.priceButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

                

            }else

            {//升序 --》升序

                [self.priceButtonsetImage:[UIImageimageNamed:@"icon_order_up.png"] forState:UIControlStateNormal];

                [self.priceButtonsetTitleColor:RGBCOLOR(116, 116, 116) forState:UIControlStateNormal];

                

            }

          

            if (timeButtonIsDescending)

            {//降序--》升序

                timeButtonIsDescending = NO;

                [btn setImage:[UIImageimageNamed:@"icon_order_down_h.png"] forState:UIControlStateNormal];

                [btn setTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

                

            }else

            {//升序---》降序

                timeButtonIsDescending = YES;

                [btn setImage:[UIImageimageNamed:@"icon_order_up_h.png"] forState:UIControlStateNormal];

                [btn setTitleColor:RGBCOLOR(253, 113, 34) forState:UIControlStateNormal];

                

            }

        }

     

        

            

        

        NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithArray:arr];

        self.fListArray = mutableArray;

        [self.expansionTableViewreloadData];

    }

     

  • 相关阅读:
    router-link中传值的三种方式
    JVM原理和优化
    JAVA中关于锁机制
    思考程序
    论防御式编程与攻击式编程
    BOM详解
    理解JAVASCRIPT 闭包
    用HTML5 CANVAS做自定义路径的动态效果图片!
    js制作点击会自动隐藏的导航栏(固定在在头部的)
    ++a和a++的区别。
  • 原文地址:https://www.cnblogs.com/guligei/p/3068642.html
Copyright © 2020-2023  润新知