本系列文章都是以有OC基础来写的,所以注释不会写太多,对基础不够了解的同学可能不太适合,另外本系列文章不是以教程式的形式来写,是记录学习过程的,所以不会有多少讲解 第一步:创建工程 A62A869C-6B27...1.UILabel let myLabel = UILabel(frame:CGRectMake(10,20,200,20)) myLabel.textColor = UIColor.redColor...// 2.UIButton let myBtn:UIButton = UIButton(type: UIButtonType.Custom) myBtn.frame...,两种语言控件的属性是一样的,只是语法有些不一样而已,多写几个就会发现Swift都是一个套路.那好吧,简单的控件就不写了,接下来我们来写下UITableView // 5.UITableView...// fixed font style. use custom view (UILabel) if you want something different @available(iOS 2.0
iOS上的UIKit和Mac上的AppKit都为我们提供了创建具有原生外观的UI所需的所有基本核心构建块,但是我们经常需要自定义这些外观以适合我们的设计并为其定义布局。...尤其是在使用子视图控制器时,我们通常最终会得到一组视图控制器,它们只能在其中呈现特定状态,而不是在其中包含大量逻辑。对于那些视图控制器,将其设置移动到静态工厂API可能是一个很好的解决方案。...-使用静态工厂方法和属性的替代方法是使用实际工厂对象。...如果您想了解有关此类对象以及我通常使用工厂模式的其他方式的更多信息,请查看"Swift:使用工厂模式以避免共享状态","Swift:使用工厂进行依赖注入"和"Swift: 使用懒加载属性"。...Swift: extension UILabel { class func makeForTitle() -> UILabel { let label = UILabel()
那只好上证据了~ // 设置语音按钮的高亮图片 voiceButton.setImage(#imageLiteral(resourceName: "message_voice_sender_normal..."), for: .highlighted) 那知道原因之后就很好解决了 解决方案 方案一:设置按钮的高亮图片 将按钮的高亮图片与普通状态下的一致即可。...这里就再赘述了 方案二:adjustsImageWhenHighlighted = false 在UIButton中有这么一个属性 adjustsImageWhenHighlighted 查看官方文档的说明...并且该值的默认值为true 所以我们也可以将属性adjustsImageWhenHighlighted设置为false,不让系统自动帮我们设置高亮状态下显示的图片即可。...效果 完美 附上相关项目:Swift 3.0 高仿微信
taylor swift 前言 通过 IB 设置 控件 的属性非常的方便。 但是缺点也很明显,那就是有一些属性没有暴露在 IB 的设置面板中。...关于在 OC 中使用 IBInspectable 可以看一下我的 这篇文章 正文 在项目中最常遇到的情况是为 view 设置圆角、描边,以及为 文本控件 添加本地化字符串。...本地化字符串 本地化字符串的解决方法和上面的添加圆角一样 extension UILabel { @IBInspectable var localizedKey: String?...= NSLocalizedString(newValue, comment: "") } get { return text } } } extension UIButton...参考 《再看关于 Storyboard 的一些争论》 《@IBDesignable and @IBInspectable in Swift 3》
前提 圆角和阴影无法共存的原因就是因为这句代码。...这句话的意思就是,圆角都是我给你割出来的,圆角外面的阴影自然也割掉了~ 所以,这么看来,圆角与阴影不能并存啊(仅限这种圆角实现的方式) 处理方式 在下面再加一个subView负责处理圆角,而父类view...standard = 1; subView.layer.cornerRadius = 10*standard; subView.layer.masksToBounds = YES; 注意父类View的masksToBounds...=NO cornerRadius等于subView的大小 suvBiew的masksToBounds=YES 添加一个上层Layer: CALayer *subLayer=[CALayer layer
模式是一项管理复杂度的技术,几乎所有模式都遵循两个原则: 针对接口编程,而不是实现。 多用组合,少用继承。 很多模式看上去很类似,这是因为实现各种模式的方式一般就是继承和组合。...GUI 框架的原因),所以本文也主要以 iOS 开发为例进行说明。...{ return UILabel() } func createButton() -> UIButton { return UIButton(...() } } 有一点需要注意,Swift 的private关键字的作用域是以文件为单位的,而不是类,所以虽然把HelloUiFactory类的构造器声明为private了,但在本文件内(哪怕在HelloUiFactory...这不是XXX模式么?”,或者等你的项目规模大到一定程度的时候脑中灵光一闪:“这里用XXX模式似乎不错~”的时候,你就知道模式有什么用了。
方方正正的样式往往会显得很生硬,而圆角的样式会让人产生别样的亲切感,现在越来越多地用到圆角,诸如用户头像之类的图片也大都用圆形来显示,本文就介绍如何设置按钮、文本框的圆角以及制作圆形的图片。...先来看看效果图: 如效果图所示,我们制作了一个圆形的头像,一个完全半圆的圆角按钮,一个小圆角的按钮,以及一个带边框且边框为圆角的label。...大概思路如下: View都有一个layer的属性,我们正是通过layer的一些设置来达到圆角的目的,因此诸如UIImageView、UIButton、UILabel等view都可以设置相应的圆角。...,我们同样设置角度为高度的一般,这样可以在两边形声半圆,而由于宽度与高度不同,所以不是正圆: // 完全半圆圆角的按钮 UIButton *btnOne = [[UIButton alloc] initWithFrame...:btnTwo]; 第四个label,我们先要添加边框,我们设置边框宽度为1,就可以显示边框了,然后同样设置圆角为4: // 带边框的圆角Label UILabel *label = [[UILabel
iOS应用开发是一项充满创意和挑战的工作,而Swift作为苹果公司推崇的编程语言,Xcode则是官方提供的集成开发环境。...在本篇博客中,我们将一步步地介绍如何使用Swift和Xcode创建一个简单的iOS应用。我们将涵盖项目的创建、界面设计、Swift代码编写以及应用的运行。让我们开始这个令人兴奋的开发之旅!...安装完成后,打开Xcode,同意许可协议,并确保你的Xcode已经安装了合适的iOS模拟器和开发工具。步骤2:创建新的iOS项目打开Xcode。...}}在这个例子中,我们假设已经在Main.storyboard中创建了一个按钮和一个标签,并将它们分别关联到ViewController.swift文件中的myButton和myLabel属性。...你已经成功创建并运行了一个简单的iOS应用程序,使用了Swift语言和Xcode进行开发。这只是一个入门示例,你可以根据需要扩展应用,添加更多功能和界面元素。
一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源...界面设计文件, storyboard 是新版本使用的; -- Supporting Files : 支持库, 一般保存 不是 Objective-C 的源代码 和 资源文件; Supporting Files...; -- 自动链接 : 框架和库一旦被添加到该目录后, 会自动链接到应用中, IOS 应用可以调用这些资源 和 库中的类 和 函数; -- 系统默认框架 : Foundation.framework,...文件 与 真实文件系统中的目录文件不是对应的; -- 逻辑分组 : Xcode 将 真实文件进行了逻辑分组, 并不是真实的文件结构; -- 自定义分组 : 开发者还可以创建自定义的分组; mac 中的...IOS 已经下架了所有的 非 Retina 屏幕的设备, 目前在售的所有设备都是 Retina 设备, 但是之前卖出的许多设备有些不是 Retina 屏幕的; -- 支持 Retina 屏幕的设备 :
学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里在脑子里形不成iOS开发的思想,现将自己在学习过程中遇到的一些知识进行总结,希望能对iOS初学者能有一定的帮助...最初学iOS的时候苦于没有大神指点,全靠自己一点点摸索,确实走了很多弯路,不希望还有小伙伴跟我一样走过多的弯路。 ...作为iOS开发的入门总结的第一篇,这里以最常见的注册或登陆页面设计作为开篇,这里主要会用到UILabel,UIButton,UITextField这三个控件。...说明: 这里为了展现UITextField的文本框关联键盘的设置,这里把“密码”和“确定密码”的关联键盘都设置为数字键盘,实际应用中密码一般都允许为数字或字母。 实现了键盘收回操作。...UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)]; //设置Label的位置和大小
1、Quartz 2D是一个二维绘图引擎,同时支持ios和Mac系统; Quart2D的API是纯C语言的,API来自于Core Graphics框架: 2、Quartz 2D可以绘制图形(线段/三角形.../矩形/圆和弧)、绘制文字、绘制和生成图片、读取/生成pdf、截图/裁剪图片、自定义UI控件等 3、对于界面复杂且个性化的UI,普通的UI控件无法实现,而Quartz2D技术却可以通过自定义UI控件来实现...其实,ios中大部分控件的内容都是通过Quart2D画出来的 4、图形上下文(GraphicsContext): 是一个CGContextRef类型的数据 图形上下文的作用:1)保存绘制信息、...在 iOS 中,总是使用横排文本,0 以外的值都未定义。...16 [self clipImage]; //裁剪图片 17 18 //添加上一页和下一页按钮 19 UIButton *preBtn = [UIButton
我们会发现,跨平台以及原生端包括 iOS 和安卓,都会对 FlexBox 布局多少有点涉足,在现在大前端的开发趋势下,统一的布局方式和思路显得尤为重要。...然而有赞美业是有赞最早迁移到 Swift 的项目,迁移 Swift 后的代码,对 C++ 的兼容其实有一定的局限性,若过多使用 C++,在代码中也不能体现 Swift 的优雅性。...2.1 API设计 UIView().attach($0) { UILabel().attach($0) .text("测试Label") UIButton().attach(...UIView |-- UILabel |-- UIButton 同时 View 之间没有相互联系,移植性高。 为什么不通过描述对象的方式来声明而采用直接使用 View 进行声明呢?...四、未来 虽然现在暂时实现了我们所需要的功能,但依旧是建立在 UIKit 之上的,声明的并不是 UI 描述,而是直接的UI树,这意味着我们的任何一个布局都是一层 View,无可避免地会在一定程度上加重了我们的
label.png 设置圆角、边框等属性是日常开发中几乎每天都要做的事情,譬如我们现在要实现如上这个带边框和圆角的 label,用代码我们可以这么写: label.layer.cornerRadius...是不是觉得这跟你认识的 MVC 完全不一样?因为不知道什么时候起,有人认为 MVC 应该是由 Controller 作为 Model 和 View 的中介,Model 和 View 是不能通信的。...于是 Controller 成了 MVC 的中心,这种思想也是 iOS 开发中的主流思想,斯坦福 iOS 公开课上白胡子老头放过一张解释 MVC 的图: ?...于是有人提出在 iOS 中使用 MVVM,不过 Cocoa Touch 跟 WPF 是不一样的,所以大多数时候在 iOS 中的 MVVM 其实是 M-VM-V-C,也就是在 View 和 Model 之间加了个...关于面向协议编程 Swift2之后可以用 extension 给协议方法或者属性加上一个默认实现了,这使得 Swift 可以用协议模拟 Ruby 中用 module 实现的 mixin 效果,也就是通过协议扩展某个类的功能
本系列文章都是以有OC基础来写的,所以注释不会写太多,对基础不够了解的同学可能不太适合,另外本系列文章不是以教程式的形式来写,是记录学习过程的,所以不会有多少讲解 OK,承接上一篇文章,这次开始UITableView...,是没有宏这个概念的,但是直接创建一个文件,在里面直接定义常量,别的文件也是可以访问和使用的(并且不需要导入):如图创建一个common文件 ?...var buildLabel : UILabel?...ImageView和一个Label,虽然数据是死的,但是在Swift中,另外一个类是可以直接访问另一个类中的变量的(如果没做任何保护的话),所以我们在配置cell的时候是可以直接赋值的,这里就不弄了,然后我们看创建表视图那一块...学了这么几天,我发现Swift还是比较容易入手的,下篇文章我会用一个小的项目,本人是做室内地图SDK的,这次的小项目是仿我OC写的SDK Demo,使用Swift和OC混编,集成百度地图SDK和自己的室内
阴影裁剪 和图层边框不同,图层的阴影继承自内容的外形,而不是根据边界来界定。...之前有个UI需求,同时设置阴影和圆角,圆角简单的使用layer.cornerRadius和maskToBounds。...(weak, nonatomic) IBOutlet UIButton *rightBtn; @end @implementation ViewController - (UILabel *)subLbl...这显示的效果有点怪。右边的设置了alpha为0.5。但是在UILabel的位置好像不是0.5的效果。这是因为透明度的混合叠加造成的。实际上右侧中间的透明度是0.75。...@property (weak, nonatomic) IBOutlet UIButton *rightBtn; @end @implementation ViewController - (UILabel
在iOS开发中使用Swift实现一个倒计时功能比较常见,可以用于各种场景,例如倒计时按钮、显示倒计时时间等。下面展示一个简单的倒计时功能示例。...使用 Timer 最简单和直接的方式是使用 Timer 来实现倒计时功能。 1. 倒计时示例 下面是一个 CountdownTimer 类,可以在应用各种场景中进行倒计时。...private var countdownLabel: UILabel!...3、 暂停与继续: 如果需要实现倒计时的暂停和继续功能,需要额外管理时间状态,并在 Timer 重新启动时使用保存的时间。...通过这些步骤,有了基本的倒计时功能,您可以进一步根据具体需求进行扩展和定制。
在iOS开发及测试中,除了业务逻辑和算法之外,UI控件是最重要的一部分,因此熟悉UI控件及实现原理,对于了解开发实现和测试是相当必要的,这篇文章将给大家介绍常用的UI控件及实现。...UI UI(User Interface)用户界面,即用户能看到的各种各样的页面元素,iOS App 主要是由各种各样的UI控件加业务逻辑和算法构成,想要开发出一款精美的应用程序,需要熟练掌握各种各样UI...(1)UIButton(按钮):是响应用户点击的控件。在App中UIButton是出现频率很高的控件; (2)UIButton与UILabel、UITextField侧重点不同,侧重于处理点按。...创建UIButton与创建UILabel、UITextField、UIView的步骤很相似。...总结 该文主要分享了UI相关的概念,重点介绍了所有可视化控件的基类UIView及其属性和相关方法,并详细介绍3个最常见的UI控件-UILabel(标签)、UITextField(输入框)、UIButton
网上已经有很多文章介绍reactive和RxSwift,也有很多教程教大家怎么处理Rx中的各种状况(文本后面会放一些相关链接)。...所以这里不打算再写一篇教程去解释streams和observables的原理。我想提供一个简单、清晰、不涉及理论知识的总结,介绍用RxSwift可以做什么,以及为什么要用RxSwift。...而用Rx,则用如下方式添加按钮的action: var button = UIButton() var disposeBag = DisposeBag() override func viewDidLoad...当没有control event的控件(比如UILabel、UIImage)被点击时,你需要执行某段代码,怎么办?...RxSwift by Examples 1 – The Basics I create iOS apps - is RxSwift for me?
Swift 接着就是源码了 1....CustomPlayerCircularButtonView.swift import UIKit class CustomPlayerCircularButtonView: UIButton {...CurrentPlatform.swift import Foundation enum Platform { case macOS case iOS case tvOS case watchOS...#if os(macOS) static let current = macOS #elseif os(iOS) static let current = iOS #elseif...,感兴趣的给个赞或者关注~~~
Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(三) 前言 这一篇主要写微博的首页布局,及MVVM模式的体会。...相当于把之前写在View和部分写在Controller中的代码抽取到这里,达到Controller和View瘦身的作用。...有专门负责加载数据的视图模型 有专门处理业务逻辑的视图模型 控制器和模型之间可以解除耦合 视图可以进一步拆分,各处耦合性都不是很大,而且又比较容易处理逻辑问题 但是现在为止,还没有完全发挥出视图模型的最大功能...但是CPU消耗的多了,就会直接造成表格的卡顿。 关于表格性能的优化: 尽量少计算,所有需要的素材提前计算好。 控件上不要设置圆角半径,所有图像渲染的属性都要注意。...我们设置的时候,只需要将视图模型的属性直接赋值到相应的控件就好。是不是方便了很多。简化了代码。
领取专属 10元无门槛券
手把手带您无忧上云