自绘控件及cocoapods推送过程

自绘控件

背景介绍: 由于在项目中, 需要实现一个比较简单的自定义控件, 类似于CocoaTouch提供的UISlider, 需求中的不同在于, slider需要实现3个位置的触控消息. 类似与下图已经完成的效果.
自绘控件及cocoapods推送过程_第1张图片
实现过程:
创建一个继承自UIControl的LXSlider类, 然后实现

- (BOOL)beginTrackingWithTouch:(UITouch*)touch withEvent:(UIEvent*)event

重载该函数的主要作用在于获取用户点击的位置坐标, 然后通过计算得出当前的焦点应该处于什么位置上, 然后发送
sendActionsForControlEvents:UIControlEventValueChanged
消息并触发视图进行重绘刷新.
至于LXSlider类的头文件开放属性部分, 也就是将要开放给用户的属性设置, 例如修改背景色, 焦点颜色, 焦点下方的文字标签内容等. 项目的github地址在文末提供.

下面简单说下cocoapods的推送过程

按大体流程来说:
1. cocodpods推送权限获取.
2. 编写项目的podspec文件.
3. github发布项目, 并提供tag号.
4. 推送podspec文件到cocospods官方github地址.
下面着重讲下每个步骤的方法.

  • 命令行中, 执行pod register “[email protected]” “xxx”
    向pod服务器发起账号申请, 如果成功, 会在该邮箱收到一封验证的地址, 收到后点击该地址即可, 如果验证地址一直不能打开, 请考虑国情, 使用其他方法打开. 我本人的网络环境是刚开始打不开, 但是后来可以直接打开.
    验证成功后, 使用命令pod trunk me, 会显示注册名字, 邮箱地址, 拥有的Pods项目等信息.
  • 编写podspec文件, 该文件是ruby的自解释语言, 基本能够知道是什么意思, 这里附上一个LXSlider.podspec, 你可以直接拿来使用, 将项目本身相关的信息修改成你自己的即可.
Pod::Spec.new do |s|  
  s.name             = "LXSlider"
  s.version          = "1.1.0"
  s.summary          = "A customize UISlider."
  s.description      = <<-DESC
                       It is a customize UISlider with multi point that you can select, which implement by Objective-C.  
                       DESC
  s.homepage         = "https://github.com/linx214/LXSlider"
  s.license          = 'MIT'
  s.author           = { "linx214" => "[email protected]" }
  s.source           = { :git => "https://github.com/linx214/LXSlider.git", :tag => s.version }
  s.platform     = :ios, '8.0'
  s.requires_arc = true
  s.source_files = 'LXSlider/LXSlider.{h,m}', 'LXSlider/NSString+PreferredFontSize.{h,m}'
  s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'
end
  • github发布项目, 并提供tag号
    这里也是自己被坑到的位置, 如果提供的版本号不对, 会直接影响最终推送到cocospods官方地址的过程.
    在工程目录提交完项目变更到github之后, 使用git命令, 给项目打上tag
git tag '1.0.0'
git push --tag
  • 推送podspec文件到cocospods官方github地址
    podspec文件描述的版本号必须要与github上对应工程的版本号一致, 因为cocospods会去从github获取该版本号对应的工程目录, 如果版本号不对, 可能导致cocospods找不到podspec里面所描述的文件.
    最后使用命令 pod trunk push LXSlider.podspec等待片刻后, 会显示cocospods已经将项目更新至刚才提交的版本号了.
    然后使用pod search LXSlider就可以查询到刚刚提交到的项目了.
    自绘控件及cocoapods推送过程_第2张图片

项目地址:
https://github.com/linx214/LXSlider
cocospods集成方法:

pod 'LXSlider'

你可能感兴趣的:(iOS)