Swift中如何把UILabel数字的颜色设置为红色

这篇文章源于群友的一个问题:如何把『注:此商品只能整件(12的倍数发货),已选1袋,还差11袋』这段文字中的数字使用红色在 UILabel 中显示?

大概思路是:我们可以使用UILabelattribute string 属性,通过正则表达式匹配获取数字的范围,然后添加对应的 attribute。

查看更多

分享到 评论

Swift 3.0之枚举

枚举在编程中很多时候要用到,在 Swift 中,枚举具有更多的特性。

枚举语法

使用关键字 enum 定义一个枚举

1
2
3
enum SomeEnumeration {
// enumeration definition goes here
}

例如,指南针有四个方向:

1
2
3
4
5
6
enum CompassPoint {
case north
case south
case east
case west
}

这里跟 c 和 objective-c 不一样的是,Swift 的枚举成员在创建的时候没有给予默认的整型值。所以上面代码中的东南西北并不是0到3,相反,不同的枚举类型本身就是完全成熟的值,具有明确定义的CompassPoint类型。

查看更多

分享到 评论

pod setup命令失败解决方法

最近运行pod setup出现以下问题:

1
2
3
4
5
remote: Compressing objects: 100% (34/34), done.
error: RPC failed; curl 56 SSLRead() return error -3613.00 KiB/s
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

查看更多

分享到 评论

Swift 3.0之扩展

扩展可以为类,结构体,枚举和协议添加新的功能。包括可以对没有源码访问权限的类型进行扩展。扩展和 Objective-C 分类 的概念类似。(和 Objective-C 的分类不一样的是,Swift 扩展没有名称)。

在 Swift 中,扩展可以做到:

  • 添加计算的实例属性和计算的类型属性
  • 定义实例方法和类型方法
  • 提供新的初始化器
  • 定义下标
  • 定义并使用新的嵌套类型
  • 使现有类型符合协议

值得注意的是:扩展可以为类型添加功能,但是不可以重写现有的功能。

查看更多

分享到 评论

迁移到swift3.0有用的技巧

不久之前swift3.0发布了,新版本可以在Xcode 8中使用了,或者你可以直接从swift.org下载编译器。

从代码可读性来看,新版本有很多提升,函数调用的连续性,更好的命名约定和移除了部分c风格的元素。

从代码可读性来来看,NS前缀已经从Foundation类型中移除,例如NSBundle.mainBundle()现在改为Bundle.mainBundle().

查看更多

分享到 评论

Swift 3.0之闭包

写在前面

Swift引进了闭包的概念,这个与object-c的block类似,使用过block的话都知道有多方便,所以开始学Swift,先要把闭包学会,后面使用会很频繁。

开始

闭包的书写格式如下:

{ (parameters) -> return type in
statements
}

查看更多

分享到 评论

Swift 3.0之类和结构体

写在前面

最近在学swift 3.0,主要看的是苹果的官方文档,这里只是根据自己看官方文档的理解所做的一些记录,不是完整的翻译,希望也对你有所帮助。

类和结构体区别

Swift的类和结构体具有以下相同的特点:

  • 可以定义属性来保存值
  • 可以定义方法来提供功能
  • 可以定义下标来使用他们的值
  • 可以定义初始化器来配置他们的初始化状态
  • 可以在默认的实现上扩展他们的功能
  • 遵从协议来提供标准的功能

查看更多

分享到 评论

迁移到Swift 3.0之@discardableResult

在Swift 2.x的时候,带返回的方法我们如果在调用的时候后面使用到返回的参数,编译器不会有任何的警告,想要编译器给出警告的话需要自己在方法前面添加属性@warn_unused_result, 如

1
2
3
@warn_unused_result func doSomething() -> Bool {
return true
}

这时候调用这个方法没有使用返回参数的情况下编译器就会给出警告:

Result of call to ‘doSomething()’ is unused

到了 Swift 3.0 我们不需要这样写了,默认情况下编译器就是会去检查返回参数是否有被使用,没有的话就会给出警告。如果你不想要这个警告,可以自己手动加上 @discardableResult,如:

1
2
3
@discardableResult func doSomething() -> Bool {
return true
}

这样一来一切又恢复正常了。

参考: http://useyourloaf.com/blog/swift-3-warning-of-unused-result/

分享到 评论

iOS进阶之编写弹性动画

前言

之前在iOS开发干货 第1期中提到过一个挺有意思的数字转变动画NumberMorphView , 如下图:

NumberMorphView

查看更多

分享到 评论

三分钟编写一款Xcode插件

写在前面

从事iOS开发也比较长时间了,起初的时候用了一些Xcode插件之后感觉确实对开发帮助挺大,后来开始对Xcode插件开发感兴趣了,于是先后制作了AMMethod2Implement, AMAppExportToIPAAMLocalizedStringBuilder 这三款Xcode插件,这些都是在长期使用Xcode开发中萌发出的想法,后来经过研究开发出来的。现在很开心看到越来越多的人开始在开发Xcode插件,很多很有想法的插件开发出来了。同时我相信还有很多人对Xcode插件开发很感兴趣,但是却无从下手,于是有了这一篇文章。

查看更多

分享到 评论