iOS

通过 Kingfisher Extension 自定义图片处理

惯例先上源码:GitHub源码 对Kingfisher进行了简单的封装, 好处: 1. 在用`pod`管理依赖的情况下,不需要到处`import Kingfisher`。 2. 代码较为集中,方便管理。若以后需要替换`Kingfisher`也很方便。 还可以很集中地添加默认值,在我自己的项目中,全部图片都是默认 let defaultOptions: KingfisherOptionsInfo = [ .Options([.BackgroundDecode, .LowPriority]), .Transition(ImageTransition.Fade(0.55)) ] 如果需要对Kingfisher下载下来的图片需要作特殊处理,例如作圆角处理,

  • Limon
    Limon
1 min read

优雅地自定义XibView

好习惯,先上源码。 先创建一个UIView文件和一个Xib文件,在Xib文件里设置如下, 在UIView文件中,不是用-awakeFromNib()作为构造器,而是正常的-init(frame: CGRect)。 override init(frame: CGRect) { super.init(frame: frame) xibSetup() } 而-xibSetup()才是关键,具体可看源码。 如果需要UIView和Xib文件建立控件属性关联,是设置Xib文件的File`s Owner,而不是设置View的Custom Class。 设置了File`s Owner就可以像往常一样拖线了。 如果想在Main.storyboard文件中直接使用此Xib,

  • Limon
    Limon
1 min read
UINavigationBar

隐藏导航栏底部直线

NavigationBar 的底部有一个 ShadowImage 作为阴影,对其隐藏或者显示,可以利用以下的扩展来实现 extension UINavigationBar { func hideBottomHairline() { let navigationBarImageView = hairlineImageViewInNavigationBar(self) navigationBarImageView?.hidden = true } func showBottomHairline() { let navigationBarImageView = hairlineImageViewInNavigationBar(self) navigationBarImageView?.hidden = false } private func hairlineImageViewInNavigationBar(view: UIView) ->

  • Limon
    Limon
1 min read
UILabel

UILabel UITextView 用 AttributedString 计算文本宽高

在展示列表的时候,虽然 iOS 8 开始可以配合 AutoLayout 自动估算文本的高度,但是当 Cell 比较复杂的时候,还会需要手动去计算。 首先声明一个样式 var TextStyle : [String : NSObject] { get { let paraStyle = NSMutableParagraphStyle() paraStyle.minimumLineHeight = 17.3 paraStyle.lineSpacing = 0 paraStyle.lineBreakMode = NSLineBreakMode.ByWordWrapping paraStyle.paragraphSpacing

  • Limon
    Limon
1 min read