自定义排序按钮一

现在好多APP特别是购物的有筛选排序, 像升序降序那种,最近项目做了个类似的分享给大家。

1.准备两个图片

2.定义UIButton子类

#import <UIKit/UIKit.h>

typedef  void(^DropBtnClickBlock)(BOOL isSeelect);

@interface DropBtn : UIButton

@property (nonatomic,strong) NSString *title;

@property (nonatomic,strong) UIImageView  *upOrDownImg;

@property (nonatomic,copy)   DropBtnClickBlock btnClickBlock;
@end
#import "DropBtn.h"
#define RGB(r,g,b)                  [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0]

@implementation DropBtn

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        _title=[[NSString alloc]init];
        _upOrDownImg=[[UIImageView alloc]init];
        _upOrDownImg.image=[UIImage imageNamed:@"yzp_data_dropdown.png"];
        _upOrDownImg.frame=CGRectMake(self.frame.size.width-20-8, (frame.size.height-5)/2, 8, 5);
        [self addSubview:_upOrDownImg];
        [self addTarget:self action:@selector(btnClickHandle:) forControlEvents:UIControlEventTouchUpInside];

    }
    return self;
}
-(void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    //计算出字符串的frame
    NSDictionary *attributes=@{NSFontAttributeName: [UIFont systemFontOfSize:20.f],NSForegroundColorAttributeName:RGB(26, 26, 26)};
    CGRect frame=[_title boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];
    [_title drawAtPoint:CGPointMake((self.bounds.size.width-8-frame.size.width-20)/2, (self.bounds.size.height-frame.size.height)/2) withAttributes:attributes];
}

-(void)btnClickHandle:(id)sender
{
    UIButton *btn=(UIButton *)sender;
    btn.selected=!btn.selected;
    _btnClickBlock(btn.selected);
}
-(void)setSelected:(BOOL)selected
{
    [super setSelected:selected];
    if (!selected) {
        _upOrDownImg.image=[UIImage imageNamed:@"yzp_data_dropdown.png"];
    }
    else
    {
        _upOrDownImg.image=[UIImage imageNamed:@"yzp_data_dropback.png"];
    }

}

@end

3.调用

DropBtn *dropBtn=[[DropBtn alloc]initWithFrame:CGRectMake(0, 44, self.view.bounds.size.width/2, 60)];
    dropBtn.title=@"价格";
    dropBtn.backgroundColor=[UIColor yellowColor];
    dropBtn.btnClickBlock=^(BOOL isSelected)
    {

    };
    [self.view addSubview:dropBtn];

4.效果

时间: 2024-07-30 12:29:10

自定义排序按钮一的相关文章

自定义排序按钮二

之前做了个排序按钮是继承UIButton来实现的, 这次在UIbutton上添加 (高大上就是所谓的图文混排),主要还是EdgeInsets. #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface CustomDropBtn : NSObject +(UIButton *)DropBtnWithFrame:(CGRect) farme withTitle:(NSString *)title; @en

给WPS表格设置自定义排序

在使用wps处理数据的时候难免会遇到要使用排序的情况,而有些时候的排序又并不是单单的按照日期或者数字来排序,往往要根据实际的情况来进行排序工作,这使得的一些对排序功能不是特别了解的人来说无疑是一种痛苦,在这里我就教教大家怎么使用wps排序中的自定义排序哦首先呢我们举个栗子,以一个简单的表格为例 比如说我们希望以学历的高低来排序,那么我们首先要准备自定义的排序序列,以逗号隔开,要注意的是这里的逗号是英文输入法下的逗号哦,不要用中文输入法下的标点哦,把这个序列复制下来 然后我们要做的是点击wps左上

自定义排序Excel数据的方法

  自定义排序Excel数据的方法         下面是一张按产品ID排序好了的表格,现在想要达到的目标是:将表格按照类别"海鲜,特制品,谷类/麦片,肉/家禽"序列依次排序. 1.选中要排序的表格中的某个单元格,切换到"数据"选项卡,在"排序和筛选"组中单击"排序"按钮. 2.在弹出的"排序"对话框中将主要关键字设置为"类别",然后单击"次序"下拉框右侧的按钮,选择

Excel表格中自定义排序序列的方法

   Excel表格中自定义排序序列的方法         1.启动Excel 2013并打开工作表,任意选取一个单元格后在"开始"选项卡的"编辑"组中单击"排序和筛选"按钮,在打开的下拉列表中选择"自定义排序"选项,如图1所示. 图1 选择"自定义排序"选项 2.打开"排序"对话框,在"次序"下拉列表中选择"自定义序列"选项,如图2所示. 图2

Excel自定义排序

当我们在Excel中使用排序功能无法解决实际问题的时候,可以使用自定义排序对单元格内容进行排序,如下内容与此技术有关,希望对您有所帮助. 方法如下: 首先单击Excel"工具"菜单下的"选项"命令,打开"选项"对话框中的"自定义序列"选项卡. 选中左边"自定义序列"下的 "新序列 ",光标就会在右边的"输入序列"框内闪动,您就可以输入"姓名".&q

Excel如何对表格内容自定义排序

  1.我们现在Excel中打开一篇工作表,点击功能区的"开始"选项卡,在"编辑"区域选择"排序和筛选"的图标.然后点击它的倒三角按钮,在弹出的下拉菜单中选择"自定义排序"命令; 2.接着窗口会弹出一个"排序"的对话框,在点击"列"下面的"主要关键字"的下拉按钮进行选择,在"排序依据"下面的下拉按钮选择"数值","次序

Qt之QHeaderView自定义排序(终极版)

简述 本节主要解决自定义排序衍生的第二个问题-将整形显示为字符串,而排序依然正常. 下面我们介绍三种方案: 委托绘制 用户数据 辅助列 很多人也许会有疑虑,平时都用delegate来绘制各种按钮.图标.图形等操作,它还能排序?当然,它本身是不会排序的,但他的高级用法之一就是-辅助排序. 简述 委托绘制 效果 QStyledItemDelegate 眼见不一定为实 用户数据 QAbstractTableModel QSortFilterProxyModel 辅助列 效果 QAbstractTabl

在ASP.NET 2.0中操作数据之二十七:创建自定义排序用户界面_自学过程

简介 显示大量已经按类别(不是很多)排序的数据但没有类别分界线,用户很难找到所需要的类别.例如,数据库中只有9个类别(8个不同的类别和1个null),共81种产品.现在用一个GridView列出所有产品,假设有用户对类别Seafood的产品感兴趣,她一定会按类别排序,把Seafood产品排列在一起.排序后,用户便寻找Seafood产品开始和结束的地方.虽然是按英文字母排列类别不难找到Seafood,但仍要花些时间在GridView寻找.为了进一步的区分类别,许多网站使用类别分界线这种排序用户界面

button-Android:如何添加一个自定义的按钮状态

问题描述 Android:如何添加一个自定义的按钮状态 例如默认按钮在它的状态和背景图片之间具有以下依赖: <?xml version=""1.0"" encoding=""utf-8""?><selector xmlns:android=""http://schemas.android.com/apk/res/android""> <item androi