直播系统源代码,按钮图片和文字位置的各种设置

直播系统源代码,按钮图片和文字位置的各种设置实现的相关代码

1.在UIButton的扩展中添加方法

 

1
<br>/*<br>枚举 设置 图片的位置<br>*/<br>enum ButtonImagePosition : Int  {<br>    case imageTop = 0<br>    case imageLeft<br>    case imageBottom<br>    case imageRight<br>}<br>extension UIButton {<br>    <br>    /**<br>    type :image 的位置<br>    Space :图片文字之间的间距<br>    */<br>func setImagePosition(type:ButtonImagePosition,Space space:CGFloat)  {<br>       <br>        let imageWith :CGFloat = (imageView?.frame.size.width)!;<br>        let imageHeight :CGFloat = (imageView?.frame.size.height)!;<br>      <br>        var labelWidth :CGFloat = 0.0;<br>        var labelHeight :CGFloat = 0.0;<br>        labelWidth = CGFloat(titleLabel!.intrinsicContentSize.width);<br>        labelHeight = CGFloat(titleLabel!.intrinsicContentSize.height);<br>        var  imageEdgeInsets :UIEdgeInsets = UIEdgeInsets();<br>        var  labelEdgeInsets :UIEdgeInsets = UIEdgeInsets();<br>       <br>        switch type {<br>        case .imageTop:<br>            imageEdgeInsets = UIEdgeInsets.init(top: -labelHeight - space/2.0, left: 0, bottom: 0, right:  -labelWidth)<br>            labelEdgeInsets =  UIEdgeInsets.init(top:0, left: -imageWith, bottom: -imageHeight-space/2.0, right: 0)<br>            break;<br>        case .imageLeft:<br>            imageEdgeInsets = UIEdgeInsets.init(top:0, left:-space/2.0, bottom: 0, right:space/2.0)<br>            labelEdgeInsets =  UIEdgeInsets.init(top:0, left:space/2.0, bottom: 0, right: -space/2.0)<br>            break;<br>        case .imageBottom:<br>            imageEdgeInsets = UIEdgeInsets.init(top:0, left:0, bottom: -labelHeight-space/2.0, right: -labelWidth)<br>            labelEdgeInsets =  UIEdgeInsets.init(top:-imageHeight-space/2.0, left:-imageWith, bottom: 0, right: 0)<br>            break;<br>        case .imageRight:<br>            imageEdgeInsets = UIEdgeInsets.init(top:0, left:labelWidth+space/2.0, bottom: 0, right: -labelWidth-space/2.0)<br>            labelEdgeInsets =  UIEdgeInsets.init(top:0, left:-imageWith-space/2.0, bottom: 0, right:imageWith+space/2.0)<br>            break;<br>        }<br>        self.titleEdgeInsets = labelEdgeInsets<br>        self.imageEdgeInsets = imageEdgeInsets<br>    }<br>  <br>}

​2.使用

 

1
<br>    lazy var btn1:UIButton =  {<br>        let btn = UIButton.init(frame: CGRect.init(x: 50, y: 100, width: 120, height: 40))<br>        btn.backgroundColor = .gray<br>        btn.setImage(UIImage.init(named: "test"), for: .normal)<br>        btn.setTitle("测试标题", for: .normal)<br>        btn.setImagePosition(type: .imageLeft, Space: 5)<br>        return btn<br>    }()<br>    lazy var btn2:UIButton = {<br>        let btn = UIButton.init(frame: CGRect.init(x: 50, y: 160, width: 120, height: 40))<br>        btn.backgroundColor = .gray<br>        btn.setImage(UIImage.init(named: "test"), for: .normal)<br>        btn.setTitle("测试标题", for: .normal)<br>        btn.setImagePosition(type: .imageRight, Space: 5)<br>        return btn<br>    }()<br>    <br>    lazy var btn3:UIButton = {<br>        let btn = UIButton.init(frame: CGRect.init(x: 50, y:220, width: 120, height: 80))<br>        btn.backgroundColor = .gray<br>        btn.setImage(UIImage.init(named: "test"), for: .normal)<br>        btn.setTitle("测试标题", for: .normal)<br>        btn.setImagePosition(type: .imageTop, Space: 10)<br>        return btn<br>    }()<br>    <br>    lazy var btn4:UIButton = {<br>        let btn = UIButton.init(frame: CGRect.init(x: 50, y: 320, width: 120, height: 80))<br>        btn.backgroundColor = .gray<br>        btn.setImage(UIImage.init(named: "test"), for: .normal)<br>        btn.setTitle("测试标题", for: .normal)<br>        btn.setImagePosition(type: .imageBottom, Space: 10)<br>        return btn<br>    }()<br>    <br>    //运行出来的效果就是上面的截图<br>    override func viewDidLoad() {<br>        super.viewDidLoad()<br>        // Do any additional setup after loading the view.<br>        view.addSubview(btn1)<br>        view.addSubview(btn2)<br>        view.addSubview(btn3)<br>        view.addSubview(btn4)<br>   }

但是,你会发现有两个警告’titleEdgeInsets’ will be deprecated in iOS 15.0 ‘imageEdgeInsets’ will be deprecated in iOS 15.0,这是苹果公司在iOS15之后对UIButton做了改动,主要是解决这个图片位置的调整的问题,打开api你会发现这个 UIButtonConfiguration

3.附上 UIButtonConfiguration 使用方法

 

1
<br> if #available(iOS 15.0, *) {<br>            var conf1 = UIButton.Configuration.plain()<br>            conf1.title = "分享"<br>            conf1.baseForegroundColor = .black<br>            conf1.image = UIImage(named: "jk_anniu_shuju_fenxiang_f")<br>            conf1.imagePlacement = .leading<br>            conf1.imagePadding = 10<br>            let bt1 = UIButton.init(configuration: conf1, primaryAction: nil)<br> <br>            <br>            var conf2 = UIButton.Configuration.bordered()<br>            conf2.title = "分享"<br>            conf2.baseForegroundColor = .orange<br>            conf2.image = UIImage(named: "jk_anniu_shuju_fenxiang_f")<br>            conf2.imagePlacement = .trailing<br>            conf2.imagePadding = 40<br>            let bt2 = UIButton.init(configuration: conf2, primaryAction: nil)<br> <br>            <br>            var conf3 = UIButton.Configuration.borderedTinted()<br>            conf3.title = "分享"<br>            conf3.baseForegroundColor = .red<br>            conf3.image = UIImage(named: "jk_anniu_shuju_fenxiang_f")<br>            conf3.imagePlacement = .top<br>            conf3.imagePadding = 10<br>            let bt3 = UIButton.init(configuration: conf3, primaryAction: nil)<br> <br>            <br>            var conf4 = UIButton.Configuration.gray()<br>            conf4.title = "分享"<br>            conf4.baseForegroundColor = .brown<br>            conf4.image = UIImage(named: "jk_anniu_shuju_fenxiang_f")<br>            conf4.imagePlacement = .bottom<br>            conf4.imagePadding = 10<br>            let bt4 = UIButton.init(configuration: conf4, primaryAction: nil)<br> <br>            bt1.frame = CGRect(x: 220, y: 100, width: 100, height: 80)<br>            bt2.frame = CGRect(x: 220, y: 200, width: 150, height: 80)<br>            bt3.frame = CGRect(x: 220, y: 300, width: 100, height: 80)<br>            bt4.frame = CGRect(x: 220, y: 400, width: 100, height: 80)<br>            <br>            view.addSubview(bt1)<br>            view.addSubview(bt2)<br>            view.addSubview(bt3)<br>            view.addSubview(bt4)<br>        }

 

以上就是直播系统源代码,按钮图片和文字位置的各种设置实现的相关代码, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(197)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示