自定义排序按钮二

简介:

之前做了个排序按钮是继承UIButton来实现的, 这次在UIbutton上添加 (高大上就是所谓的图文混排),主要还是EdgeInsets。


#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface CustomDropBtn : NSObject
+(UIButton *)DropBtnWithFrame:(CGRect) farme withTitle:(NSString *)title;
@end


#import "CustomDropBtn.h"
#define RGB(r,g,b)                  [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0]

@implementation CustomDropBtn
+(UIButton *)DropBtnWithFrame:(CGRect) frame withTitle:(NSString *)title
{
    NSDictionary *attributes=@{NSFontAttributeName: [UIFont systemFontOfSize:20.f],NSForegroundColorAttributeName:RGB(26, 26, 26)};
    CGRect titleframe=[title boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];
    
    UIButton *dropBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [dropBtn setFrame:frame];
    [dropBtn setImage:[UIImage imageNamed:@"yzp_data_dropdown.png"] forState:UIControlStateNormal];
    [dropBtn setImage:[UIImage imageNamed:@"yzp_data_dropback.png"] forState:UIControlStateSelected];
    [dropBtn setImageEdgeInsets:UIEdgeInsetsMake((frame.size.height-5)/2, frame.size.width-20-8, (frame.size.height-5)/2, 20)];
    [dropBtn setTitle:title forState:UIControlStateNormal];
    [dropBtn setTitleColor:RGB(26, 26, 26) forState:UIControlStateNormal];
    [dropBtn.titleLabel setFont:[UIFont systemFontOfSize:20.0]];
    
    [dropBtn setTitleEdgeInsets:UIEdgeInsetsMake((frame.size.height-titleframe.size.height)/2,(frame.size.width-titleframe.size.width)/2-28, (frame.size.height-titleframe.size.height)/2,0)];
    
    [dropBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
    return dropBtn;
}

@end




相关文章
|
7月前
|
算法
排序置顶、非置顶算法,实现置顶后的结果和非置顶的内容排序保持原始序列
排序置顶、非置顶算法,实现置顶后的结果和非置顶的内容排序保持原始序列
|
4月前
|
JavaScript 前端开发 开发者
"震撼揭秘!ElementUI Table组件大变身,一键自定义升序降序按钮,排序操作秒变炫酷舞台,点击即燃,你的列表排序从此不再平凡!"
【8月更文挑战第16天】在Vue.js开发中,ElementUI的Table组件因其实用性和灵活性深受喜爱。本文通过一个后台管理系统用户列表的案例,展示了如何自定义添加“升序”和“降序”按钮以增强排序功能。首先确保安装Vue与ElementUI;接着定义表格数据及初始排序状态;利用scoped slot自定义列模板,加入按钮并绑定点击事件;最后实现在点击按钮时更新排序状态并重新排序数据的逻辑。这种方法不仅改善了用户体验,还为开发者提供了灵活调整排序逻辑的空间。
172 3
|
5月前
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
137 0
|
7月前
|
JavaScript
【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作
【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作
【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作
|
JavaScript 前端开发 Java
54jqGrid 分组 - 折叠汇总行
54jqGrid 分组 - 折叠汇总行
67 0
拖拽排序-列表布局
拖拽排序-列表布局
195 0
拖拽排序-网格布局
拖拽排序-网格布局
240 0
详解Qt5.12.9属性表控件:QtPropertyBrowser的使用示例/折叠/展开/小数位数/QSS样式/标题修改/选中行号等(1)
详解Qt5.12.9属性表控件:QtPropertyBrowser的使用示例/折叠/展开/小数位数/QSS样式/标题修改/选中行号等
1531 0
详解Qt5.12.9属性表控件:QtPropertyBrowser的使用示例/折叠/展开/小数位数/QSS样式/标题修改/选中行号等(1)
|
C++ 索引
详解Qt5.12.9属性表控件:QtPropertyBrowser的使用示例/折叠/展开/小数位数/QSS样式/标题修改/选中行号等(2)
详解Qt5.12.9属性表控件:QtPropertyBrowser的使用示例/折叠/展开/小数位数/QSS样式/标题修改/选中行号等
2603 0
详解Qt5.12.9属性表控件:QtPropertyBrowser的使用示例/折叠/展开/小数位数/QSS样式/标题修改/选中行号等(2)