1.Xib画的界面按钮,代码中进行调整按钮图片在上,文字在下:

代码中修改按钮的位置比较好:

        payButton.titleEdgeInsets = UIEdgeInsetsMake((payButton.imageView?.height)! + , -(payButton.imageView?.width)!, , )
payButton.imageEdgeInsets = UIEdgeInsets(top: -, left: , bottom: , right: -(payButton.titleLabel?.bounds.width)!)
businessButton.titleEdgeInsets = UIEdgeInsetsMake((businessButton.imageView?.height)! + , -(businessButton.imageView?.width)!, , )
businessButton.imageEdgeInsets = UIEdgeInsets(top: -, left: , bottom: , right: -(businessButton.titleLabel?.bounds.width)!)
systemButton.titleEdgeInsets = UIEdgeInsetsMake((systemButton.imageView?.height)! + , -(systemButton.imageView?.width)!, , )
systemButton.imageEdgeInsets = UIEdgeInsets(top: -, left: , bottom: , right: -(systemButton.titleLabel?.bounds.width)!)
changeButton.titleEdgeInsets = UIEdgeInsetsMake((changeButton.imageView?.height)! + , -(changeButton.imageView?.width)!, , )
changeButton.imageEdgeInsets = UIEdgeInsets(top: -, left: , bottom: , right: -(changeButton.titleLabel?.bounds.width)!)

总结:

1.要熟练掌握StoryBoard和Xib的约束,如果项目最低适配9.0,Xib里可以使用UIStackView,设置约束和适配很是方便;

2.特殊的约束可以在代码里修改,方便和直观;

新公司项目使用的Swift + Ipad开发,最近都在忙着做国际化和适配问题,对于Swift并不特别熟练的我要学习的还有很多,后面会一一更新自己项目中的难点和值得学习的点,记得关注思思哟。

欢迎关注思思个人公众号“思思小窝”哟,了解思思动态,哈哈

Swift 4.0 Xib实现Button调整的更多相关文章

  1. Swift 3.0首个开发者预览版将在5月12日释出

    Swift团队在博客中宣布Swift 3.0语言首个开发者预览版将于5月12日释出,正式版将在4-6周之后推出.开发者预览阶段并无确定的更新周期和计划,不过Swift团队称努力将其控 制在4-6周内. ...

  2. iOS -Swift 3.0 -UIButton属性大全

    // //  ViewController.swift //  Swift-UIButton // //  Created by luorende on 16/9/9. //  Copyright © ...

  3. Swift下自定义xib添加到Storyboard

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51657154 ...

  4. iOS开发系列--Swift 3.0

    概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行 ...

  5. Swift 3.0 【Swift 3.0 相较于 Swift 2.2 的变化】

    一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时 ...

  6. Swift 2.x -> Swift 3.0

    Swift 3.0 相对于 2.x 有很大变化.特别是因为命名习惯的改变,导致许多 Api 都发生了变化.总的趋势是让表示更简洁. 对旧的代码升级,大部分可以根据提示来进行更正.但也有的需要手动修改. ...

  7. Swift 2.0 异常处理

    转自:http://www.jianshu.com/p/96a7db3fde00 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主 ...

  8. fir.im Weekly - Swift 3.0 的迁移适配指南

    无论你是移动开发者,还是桌面端开发者,或者正在IoT领域探索的技术人员,那么应该更加关注 iDev 全平台开发者大会,也许是后半年 iOS 开发者最盛大的技术盛宴.既有知名公司带来专业视野,又有从 S ...

  9. Swift 3.0 令人兴奋,但Objective-C也有小改进--Objective-C的类属性

    由于Swift 3.0 出了太多令人兴奋的新特性,人们很容易忽略 Objective-C中的小改动.或许你会觉得苹果提及Objective-C 很可能是为了提高和Swift互操作性(译者注:互操作性主 ...

随机推荐

  1. Greenplum failed segment的恢复方法--primary与mirror都可修复

    当在使用greenplum过程中有不当的操作时,可能会出现segment节点宕掉的情况(比如在greenplum运行的过程中停掉其中几台segment节点的服务器),通过下面的方法可以恢复segmen ...

  2. 洛谷P1162(自我感觉思路还算巧妙的一道题)

    P1162 填涂颜色 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和 ...

  3. setitimer()函数

    定时器时间函数 struct itimerval: struct itimerval *new_value,其定义如下: struct itimerval { struct timeval it_in ...

  4. Pytest权威教程21-API参考-02-标记(Marks)

    目录 标记(Marks) pytest.mark.filterwarnings pytest.mark.parametrize pytest.mark.skip pytest.mark.skipif ...

  5. content="IE=Edge"是什么意思?

    永远以最新的IE版本模式来显示网页 <meta http-equiv="X-UA-Compatible" content="IE=7">#以上代码告 ...

  6. FWT快速沃尔什变换例题

    模板题 传送门 #include<bits/stdc++.h> #define ll long long #define max(a,b) ((a)>(b)?(a):(b)) #de ...

  7. Flink(一) —— 启动与基本使用

    一.Flink概念 lambda架构 将离线计算和实时计算结合在一起,发挥离线计算准确率高.实时计算响应速度快的优势.缺点是,同一套逻辑要分别在两个模式下实现,存在代码冗余的问题. Flink特点 ( ...

  8. @Autowired静态变量

    @Component public class UserUtil{ private static Config config; @Autowired public void setConfig(Con ...

  9. 12.linux上Apache虚拟主机的建立和https协议网站建立

    一.Apache虚拟主机的建立   虚拟web主机 在同一台服务器上建立多个web站点,每个站点不独占用一台真正的服务器       1.建立dns解析 两个域名同一个ip               ...

  10. 三大框架 之 Spring-Aop

    目录 AOP AOP简介 开发存在 的问题 JDK动态代理 cglib动态代理 Spring的AOP简介 AOP相关术语 Joinpoint:连接点 Pointcut:切入点 Advice:通知 In ...