自定义排序按钮二

简介:

之前做了个排序按钮是继承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




相关文章
|
9月前
|
索引
RecyclerView,ListView实现顶部悬浮、字母排序、过滤搜索
RecyclerView,ListView实现顶部悬浮、字母排序、过滤搜索
90 0
|
3月前
|
前端开发
使用element-ui中的table时,当有多选又有翻页功能时,点击翻页后之前选中的数据丢失
使用element-ui中的table时,当有多选又有翻页功能时,点击翻页后之前选中的数据丢失
自定义排序的常用方式
自定义排序的常用方式
|
5月前
|
JavaScript Java
forEach循环实现卡片列表
forEach循环实现卡片列表
26 0
【C#】【平时练习】将左边列表框(List)的内容(月份)添加到右边列表框。最终右侧显示的内容(月份)要保持一定顺序
【C#】【平时练习】将左边列表框(List)的内容(月份)添加到右边列表框。最终右侧显示的内容(月份)要保持一定顺序
99 0
【C#】【平时练习】将左边列表框(List)的内容(月份)添加到右边列表框。最终右侧显示的内容(月份)要保持一定顺序
拖拽排序-列表布局
拖拽排序-列表布局
160 0
拖拽排序-列表布局
|
SQL
艾伟:Gridview自定义排序且显示上下箭头
实现功能:单击Gidview列名按该列升序或降序排列,且在排序列上显示向上来向下箭头示意图片         //设置Gridview的AllowSorting属性值为true,即允许排序        AllowSorting="True" OnSorting="gridview1...
957 0
|
vr&ar
使用ElementUi的table组件自定义添加升序、降序按钮和点击事件及排序
使用ElementUi的table组件自定义添加升序、降序按钮和点击事件及排序
9832 0
|
前端开发 API 资源调度
angualr实现鼠标拖拽排序功能
angualr2以上版本 我使用的是angualr6.x最新版 ng2-dragula https://github.com/valor-software/ng2-dragula 1.
1154 0