新浪微博客户端(26)-添加转发评论工具条

 

DJStatusToolBar.m

复制代码
#import "DJStatusToolBar.h"

@interface DJStatusToolBar()

// 存放所有按钮
@property (nonatomic,strong) NSMutableArray *btns;
// 存放所有分割线
@property (nonatomic,strong) NSMutableArray *dividers;

@end


@implementation DJStatusToolBar


- (NSMutableArray *)btns {

    if (!_btns) {
        _btns = [NSMutableArray array];
    }
    return _btns;
}



- (NSMutableArray *)dividers {

    if (!_dividers) {
        _dividers = [NSMutableArray array];
    }
    return _dividers;
}




+ (instancetype)toolbar {

    return [[self alloc] init];

}



- (instancetype)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
    if (self) {
     
        /* 添加转发等按钮 */
        [self setupBtn:@"转发" image:@"timeline_icon_retweet"];
        [self setupBtn:@"评论" image:@"timeline_icon_comment"];
        [self setupBtn:@"" image:@"timeline_icon_unlike"];
        
        /* 添加分割线 */
        [self setupDivider];
        [self setupDivider];
    }
    return self;
}



// 添加按钮
- (void)setupBtn:(NSString *)title image:(NSString *)imageName {

    UIButton *btn = [[UIButton alloc] init];
    [btn setTitle:title forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
    btn.titleLabel.font = [UIFont systemFontOfSize:14];
    [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 8, 0, 0)];
    [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
    [self addSubview:btn];
    
    [self.btns addObject:btn];

}


- (void)setupDivider {

    UIImageView *divider = [[UIImageView alloc] init];
    divider.image = [UIImage imageNamed:@"timeline_card_bottom_line"];
    [self addSubview:divider];

    [self.dividers addObject:divider];
}



- (void)layoutSubviews {

    [super layoutSubviews];


    /* 设置按钮的frame */
    NSUInteger btnCount = self.btns.count;
    CGFloat btnW = self.width / btnCount;
    CGFloat btnH = self.height;
    for (int i = 0; i < btnCount; i++) {
        UIButton *btn = self.btns[i];
        btn.x = i * btnW;
        btn.y = 0;
        btn.width = btnW;
        btn.height = btnH;
    }
    
    /* 设置分割线的frame */
    NSUInteger dividerCount = self.dividers.count;
    for (int i = 0; i < dividerCount; i++) {
        UIImageView *divider = self.dividers[i];
        divider.width = 1;
        divider.height = btnH;
        divider.x = (i + 1) * btnW;
        divider.y = 0;
    }
    
}




@end
复制代码

 

最终效果:

 

 

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   夜行过客  阅读(337)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示