• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[Swift]自适应气泡对话框

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

照旧先上效果

这里会用到boundingRectWithSize方法,所以先写了一个playground看看这玩意会返回什么东西。

从右边的输出可以看出它会根据我们给的字符串返回一个刚好包含字符串的CGSize,在sb里建立这样的布局⬇️把UILabel的line设置为0⬇️

拖拽这样的outlet⬇️,注意我们需要改变Label和bubble(背景气泡)的width和height,所以需要拖拽它们的约束~

接下来编辑button的action⬇️

@IBAction func btnClicked(sender: UIButton) {
        var string = _textField.text as NSString
        var size: CGSize
        let sizeTmp: CGSize = CGSize(width: 225, height: 0)
        size = string.boundingRectWithSize(sizeTmp, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFontOfSize(17)], context: nil).size
        textFieldHeight.constant = size.height
        textFieldWidth.constant = size.width
        bubbleHeight.constant = size.height+18
        bubbleWidth.constant = size.width+25
        textLabel.text = _textField.text
        UIView.animateWithDuration(0.3) { 
            self.view.layoutIfNeeded()
        }
        _textField.text = ""
    }

 里面的layoutIfNeeded函数用来重新布局,运行一下看看~

咦?右下角有未显示的,为什么呢?因为还有一个属性没有设置~

在viewDidLoad里面加上这句

 self.textLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping

 就OK了~


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOSOCSwift3.0TableView中tableviewcell的线左边不到边界发布时间:2022-07-13
下一篇:
Swift阳历转农历,农历转公历发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap