文档章节

[10秒学会] - iOS 消息气泡

codefib
 codefib
发布于 2016/05/17 23:17
字数 480
阅读 2.2K
收藏 3

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

效果图:  数据用的就是小马哥的plist 气泡也是   我这个是纯代码


旧的  -_-!!  朋友说没模型 cell高度也没计算           这个是修改版的样子

                            


code1 这个是旧版

 NSString * str = @"赵大财10秒让你学会写IOS消息气泡 大财10秒让你学会写IOS消息气泡 大财10秒让你学会写IOS消息气泡" ;
        
        [self.contentView addSubview:self.btn];
        [self.btn autoSetDimension:ALDimensionWidth toSize:200]; //首先设置宽度 这里用的是第三方约束
        [self.btn setTitle:str forState:UIControlStateNormal];
        self.btn.titleLabel.font = [UIFont systemFontOfSize:14];
        self.btn.titleLabel.numberOfLines = 0;
        [self.btn layoutIfNeeded]; //这里刷新下 不然得不到高度
        [self.btn autoSetDimension:ALDimensionHeight toSize:self.btn.titleLabel.frame.size.height+40];
        [self.btn autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:40];
        [self.btn autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:40];
        self.btn.contentEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 20);
        UIImage *img = [UIImage imageNamed:@"chat_send_nor"];
        img = [img stretchableImageWithLeftCapWidth:img.size.width*0.5 topCapHeight:img.size.height*0.5];// 这里居中拉伸
        [self.btn setBackgroundImage:img forState:UIControlStateNormal];
        self.contentView.backgroundColor = RGBRandomColor;

code 2 这个是新版

 CGSize titleSize =[messageModel.text sizeWithFontWidth:[UIFont systemFontOfSize:15]];
    CGFloat paowidth = titleSize.width>=200?200:titleSize.width;
    
    
    [self.contentView addSubview:self.btn];
    self.btn.width = paowidth+40;   //这里 都换成frame形式了  

    [self.btn setTitle:messageModel.text forState:UIControlStateNormal];
    self.btn.titleLabel.font = [UIFont systemFontOfSize:15];
    self.btn.titleLabel.numberOfLines = 0;
    [self.btn layoutIfNeeded]; //这里刷新下 不然得不到高度

    
    self.btn.height = self.btn.titleLabel.frame.size.height+30;
    self.btn.x= YLScreenW - paowidth - 40;
    self.btn.y =0;
    UIImage *img = [UIImage imageNamed:@"chat_send_nor"];
    img = [img stretchableImageWithLeftCapWidth:img.size.width*0.5 topCapHeight:img.size.height*0.5];// 这里居中拉伸
    [self.btn setBackgroundImage:img forState:UIControlStateNormal];
    self.contentView.backgroundColor = RGBRandomColor;
    
    messageModel.cellHeight = self.btn.titleLabel.frame.size.height+30;

model:

@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) NSString *time;


/** cell的高度 */
@property (nonatomic, assign) CGFloat cellHeight;

VC:

#import "messageTableViewCell.h"

@interface MeIndexViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (strong ,nonatomic)UITableView *tableView;

@property (strong,nonatomic) NSArray *dacaiMessageModel;

@end


@implementation MeIndexViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor YLColorGrayBg];
    self.navigationItem.title = @"我的";
    
    [self.view addSubview:self.tableView];
    [self.tableView autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"messages.plist" ofType:nil];
    NSArray *dictArray = [NSArray arrayWithContentsOfFile:path];
    _dacaiMessageModel = [messageModel mj_objectArrayWithKeyValuesArray:dictArray];
    
    
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return _dacaiMessageModel.count;
}

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    //[messageTableViewCell ]
    messageModel * model = _dacaiMessageModel[indexPath.row];
    return model.cellHeight;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    messageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kMessageTableViewCellCellIdentifier forIndexPath:indexPath];
    
    [cell daCaiHeight:_dacaiMessageModel[indexPath.row]];
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

}

- (UITableView *)tableView {
    if (!_tableView) {
        _tableView = [[UITableView alloc]initWithFrame:CGRectZero style:UITableViewStylePlain];
        [_tableView configureForAutoLayout];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.backgroundColor = [UIColor whiteColor];
        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        _tableView.showsVerticalScrollIndicator = NO;
        _tableView.alwaysBounceVertical = YES;
        [_tableView registerClass:[messageTableViewCell class] forCellReuseIdentifier:kMessageTableViewCellCellIdentifier];
    }
    return _tableView;
}

 

codefib
粉丝 22
博文 178
码字总数 40213
作品 0
长沙
私信 提问
加载中
请先登录后再评论。
PopTip View

实现各种弹出消息/tips的效果。点击任意控件,按钮,导航条按钮,工具条按钮(UIBarButtonItem),都会弹出消息气泡。弹出的气泡会自动定位在相应的按钮旁边,并且有小箭头指向这个按钮。气泡...

iosCode
2013/01/26
75
0
Popup View

实现各种弹出视图/气泡效果。点击任意控件,如按钮、导航条按钮、工具条按钮等,都会弹出消息气泡。弹出的视图会自动定位在相应的按钮旁边,并且有小箭头指向这个按钮。可以在弹出视图上加文...

iosCode
2013/01/26
66
0
Contact Bubble View

实现类似电子邮件app的地址栏气泡文字(contact bubbles),点击每个气泡文字,会弹出一个小框框,可以对气泡进行进一步的操作,比如删除等。 Code4App编译测试,测试环境:Xcode 4.3, iOS ...

iosCode
2013/01/27
26
0
iOS 图表工具charts介绍

charts是一个很好的绘图工具,功能非常强大,可以用来绘制折线,柱状图,饼状图,k线图,k线分时图,雷达图,气泡图等等,charts是一款仿照安卓 MPAndroidChart而来的一个基于swift编写的绘图...

osc_wv1mxwu2
2019/07/11
19
0
HEBubbleView

HEBubbleView 是一个 iOS UI 控件用来显示气泡条目,类似 iOS 和 OS X 的邮件应用,选择了多个联系人的情况。 转载:http://www.adobex.com/ios/source/details/00001151.htm...

iosCode
2013/02/02
11
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringCloud 应用在 Kubernetes 上的最佳实践 — 开发篇

作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 前言 近年来,云原生、Kubernetes、微服务、SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 SpringCloud ...

阿里云技术博客
23分钟前
0
0
如何能够高效率学习Web前端技术

  Web前端开发作为前端技术的重要组成,一直占据着重要的地位,整个IT行业内有大量的前端开发从业者,随着移动互联网、大数据和人工智能的发展,目前前端的知识体系也在逐渐丰富。   要想...

SXXpenguin
23分钟前
0
0
Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

当大潮退去,才知道谁在裸泳。。关注公众号【BAT的乌托邦】开启专栏式学习,拒绝浅尝辄止。本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈、MyBatis、中间件等小而美的专栏...

osc_odp8kgup
24分钟前
0
0
HttpMessageConverter是这样转换数据的

Java Web 人员经常要设计 RESTful API(如何设计好的RESTful API),通过 json 数据进行交互。那么前端传入的 json 数据如何被解析成 Java 对象作为 API入参,API 返回结果又如何将 Java 对象...

tan日拱一兵
2019/05/27
7
0
angular浏览器兼容性问题解决方案

问题:edge浏览器下,固定列的边框消失 原因:ng-zorro-antd表格组件使用nzLeft和nzRight指令固定的表格列,这两个指令的实现css3中的标签: position: -webkit-sticky !important;positio...

osc_elbmybcg
25分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部