iPhone开发:类似iChat的聊天泡泡示例

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 19:44 点击:

很多iPhone聊天程序消息显示都喜欢做成iChat的泡泡样式,这样是不是很apple呢?

那么下面用一种简单的方法来实现它。

主要通过

UIlabel的sizeToFit方法自动计算文本区域大小

UIImage的- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;方法拉伸图片
可以根据文本内容自动适应算泡泡高度

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;的含义是

横向从leftCapWidth+1个像素开始,该像素被横向无限复制,作为中间部分,剩余部分又被链接到一起组成整张图

纵向从topCapHeight+1个像素开始,该像素被纵向无限复制,作为中间部分,剩余部分又被链接到一起组成整张图

所有拉伸后的图片不会变模糊。


效果如下,先上图

 \

所要用到的资源


\\

定义一个类ChatPopView,代码日下

#import <UIKit/UIKit.h>

typedef enum tagPopDirection
{
ePopDirectionLeft = 0,
ePopDirectionRight
}ePopDirection;

@interface ChatPopView : UIView {
UIImageView *popBackground;
UILabel     *contentLabel;
ePopDirection direction;
}

@property (nonatomic,retain) UIImageView *popBackground;
@property (nonatomic,retain) UILabel     *contentLabel;
@property (assign) ePopDirection direction;

-(id)initWithFrame:(CGRect)frame popDirection:(ePopDirection) d;
-(void)setText:(NSString *)str;

@end


#import "ChatPopView.h"

@implementation ChatPopView
@synthesize popBackground;
@synthesize contentLabel;
@synthesize direction;

-(id)initWithFrame:(CGRect)frame popDirection:(ePopDirection) d{

self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor clearColor];
self.direction = d;
UIImageView *back = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
self.popBackground = back;
[back release];
UIImage *theImage = nil;
if (ePopDirectionRight== self.direction) {
theImage = [UIImage imageNamed:@"SSMessageTableViewCellBackgroundGreen"];
}else {
theImage = [UIImage imageNamed

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • UITableView一些方法
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • iphone(object-c)内存管理(1)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1