- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor = [UIColor whiteColor];

/**

QQ聊天 气泡的实现

*/

self.QQBubble = [UIButton buttonWithType:UIButtonTypeCustom];

self.QQBubble.backgroundColor = [UIColor blueColor];

//    self.QQBubble.titleLabel.backgroundColor = [UIColor purpleColor];

NSString *string = @"《蛮荒记》的故事展开:大荒586年, 神农化羽,神帝之位悬空,引发金、木、水、火、土五族大战。神农传人拓跋野与义弟蚩尤联合对抗侵略者,双军交锋,大地却在战场中央裂开,封印太古凶魔的皮母地丘重现人间《蛮荒记》的故事展开:大荒586年, 神农化羽,神帝之位悬空,引发金、木、水、火、土五族大战。神农传人拓跋野与义弟蚩尤联合对抗侵略者,双军交锋,大地却在战场中央裂开,封印太古凶魔的皮母地丘重现人间《蛮荒记》的故事展开:大荒586年, 神农化羽,神帝之位悬空,引发金、木、水、火、土五族大战。神农传人拓跋野与义弟蚩尤联合对抗侵略者,双军交锋,大地却在战场中央裂开,封印太古凶魔的皮母地丘重现人间";

[_QQBubble setTitle:string forState:UIControlStateNormal];

[_QQBubble setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

_QQBubble.titleLabel.numberOfLines =0;

_QQBubble.titleLabel.font = MyFont;

/**

*

*  -----内容尺寸(高度)根据 字的数量、字体多少决定-----     按钮尺寸需要比内容尺寸宽20边界

*

*/

CGSize textSize = [string boundingRectWithSize:CGSizeMake(150, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:MyFont} context:nil].size;

CGSize textBtnSize = CGSizeMake(textSize.width + Padding*2, textSize.height +Padding*2);

self.QQBubble.contentEdgeInsets = UIEdgeInsetsMake(Padding, Padding, Padding, Padding);

self.QQBubble.frame = CGRectMake(50, 100, textBtnSize.width, textBtnSize.height);

/**

*  -----拉伸图片 (防止边框走样)------

*/

UIImage *normal = [UIImage imageNamed:@"yellowfish.png"];

CGFloat w = normal.size.width * 0.5;

CGFloat h = normal.size.height * 0.5;

UIImage *lastImage = [normal resizableImageWithCapInsets:UIEdgeInsetsMake(h-1, w-1, h, w)];

[self.QQBubble setBackgroundImage:lastImage forState:UIControlStateNormal];

[self.view addSubview:self.QQBubble];

}

QQ聊天气泡(图片拉伸不变样)、内容尺寸定制(高度随字数、字体而变)的更多相关文章

  1. winform实现QQ聊天气泡200行代码

    c# winform实现QQ聊天气泡界面,原理非常简单,通过webKitBrowser(第三方浏览器控件,因为自带的兼容性差)加载html代码实现,聊天界面是一个纯HTML的代码,与QQ的聊天界面可以 ...

  2. SpannableString 转换局部字体大小,但在EditText测量之前设置内容,测量高度为,字体变小之前的高度

    public void setHint(@NonNull String hint, @Nullable CharSequence subHint) { this.hint = hint; if (su ...

  3. 【HTML5】实现QQ聊天气泡效果

    今天自己用 HTML/CSS 做了个类似QQ的聊天气泡,以下是效果图: 以下说下关键地方的样式设置.然后贴出html和css代码(不多). 步骤1:布局 消息採用div+float布局,每条消息用一个 ...

  4. C#绘制三角形并填充,使用winform实现qq聊天气泡

    首先是需求,需要制作一个聊天气泡, 但是winform中有没有类似Android的.9图,只有自己设计图形拼接气泡. 第一种是绘制空心三角形,第二种是绘制三角形区域,可以指定RGB颜色. privat ...

  5. JAVA实现QQ聊天气泡

    最近做了聊天气泡功能,为自己的聊天室美化了一下聊天效果: 先来看一下效果: 主要的思路是:以一个JTextPane作为显示的面板,然后自定义一个组件JBubble气泡组件来实现他的聊天气泡,然后通过J ...

  6. css实现微信信息背景qq聊天气泡

    用css实现一个椭圆形状的背景框很好实现 css: div{ width:200px; height:80px; background-color: #78DDF8; border-radius:10 ...

  7. 【原】iOS学习之图片拉伸处理(类似qq的气泡)

    原理是拉伸里面的内容,将边保护起来 方法1: ①[image resizableImageWithCapInsets:UIEdgeInsetsMake(, , , )]; ②[image resiza ...

  8. 关于MAC下的QQ聊天中看不到对方所发的图片解决

    使用QQ聊天我们会经常碰到一件让人烦心的事情,那就是别人发的截图自己看不大,是一张裂图(腾讯默认的那张图片).通常有几种情况可以造成这种结果: 第一种原因,网络延迟原因,你的网络不好或者对方的网络不好 ...

  9. reactnative实现qq聊天消息气泡拖拽消失效果

    前言(可跳过) 我在开发自己的APP时遇到了一个类似于qq聊天消息气泡拖拽消息的需求,因为在网上没有找到相关的组件,所以自己动手实现了一下 需求:对聊天消息气泡拖拽到一定长度松开时该气泡会消失(可自行 ...

随机推荐

  1. BZOJ 1067 & Interval_Tree

    1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3099 Solved: 800 Description 我们常常 ...

  2. JAVA_RSA密钥生成

    在网上找了下RSA的密钥的创建,结果全是用java序列化PublicKey和PrivateKey来保存,就自己写了个RSA公钥和私钥的创建,及进行Base64编码后保存. 这里用到了 bcprov-j ...

  3. C#的async和await

    C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...

  4. 省份+城市---Dropdownlist控件的应用

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> ...

  5. HttpRuntime.Cache的使用经验

    配置文件 <appSettings>   <add key="EnableCache" value="true"/>   "/ ...

  6. Swift Internal Parameter and External Parameter 外部参数和内部参数

    今天跟大神又学习了些关于IOS开发Swift语言的外部参数和内部参数 func doSomething(num1: Int, num2: Int) -> Int { return num1 + ...

  7. [转] - QPixmap全局变量载入多张图片失效问题

    我想qt 中QPixmap这个类大家都很熟悉,它可以很简单的在标签上贴图:例如: QPixmap p; p.load("1.png"): label->setPixmap(p ...

  8. php的具体配置学习笔记

    1.将php配置为apache的一个模块,使用loadmodule指令完成. 2.写下面的语句,此外需强调的是,每次配置都需要重新启动apache 3.php文件,要指定将其php模块来处理 4.PH ...

  9. 使用ProxychainsMac下安装及配置

    下面几种解决方式 一.先在VPS用composer把Laravel给拖回来,本地你就别想用Composer正常下载Laravel回来了 二.使用全局代理,暂时木有折腾过在终端下怎么折腾,GUI可以使用 ...

  10. switch,break和default语句练习

    int w = 8; switch (w){ case 0: System.out.println("今天是星期日"); break; case 1: System.out.pri ...