前言
排序按钮是实际开发中比较常见的一种控件,最近我也遇到了,今天简单分享下。
虽然功能简单,但是保证你看了不亏,尤其是对UI这块比较薄弱的同学来说。
OK,先看图:
简单描述一下:
按钮一共有三种状态:非选中、选中升序、选中降序。
按钮的三种状态
点击按钮时有两种情况:
- 按钮原本处于非选中状态,点击,切换到选中状态,其状态变为升序。
- 按钮原本就处于选中状态,再点击一下,则切换其排序状态(升变降、降变升)。
不同状态对应不同的icon,如果没有UI,可以去iconfont 找图标,输入关键词如“上下箭头”就可以找到你需要的icon。
基本思路
继承UIButton,直接在button上放view,设置约束,根据按钮的状态设置对应的图片。
PS:自定义按钮最灵活的做法就是直接在button上放view(在不需要纠结内存和view层级的情况下),简单粗暴、随心所欲。
完整代码
.h文件:
#import <UIKit/UIKit.h>
@interface CQSortButton : UIButton
/** 按钮文本 */
@property (nonatomic, copy) NSString *title;
/** 是否是升序 */
@property (nonatomic, assign, readonly, getter=isAscending) BOOL ascending;
@end
.m文件:
#import "CQSortButton.h"
@interface CQSortButton ()
/** 文本label */
@property (nonatomic, strong) UILabel *cq_titleLabel;
/** 箭头imageView */
@property (nonatomic, strong) UIImageView *cq_arrowImageView;
@end
@implementation CQSortButton
#pragma mark - 构造方法
- (instancetype)initWithFra