cd $HOME/git_repository/OCTemplate/OCTemplatePublish/src && node ./publish.js
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'SNTest' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# pod 'SNFramework', :git => 'https://github.com/stone-info/OCTemplate.git'
# Pods for SNTest
pod 'OCTemplate', :git => 'https://github.com/stone-info/OCTemplate.git',:tag => '0.0.6'
end
git add .
git commit -m "add repo"
git tag 0.0.1
git push --tags
因为Framework在开发的过程中会不断的更新,从0.0.1到 0.0.2等。
- 此时我们先更新代码,并打上tag,推送到远程仓库
git add .
git commit -m "update repo"
git tag 0.0.2
git push --tags
- 然后修改podspec文件中的version字段
s.version = "0.0.2"
- 本地验证podspec文件
pod lib lint
或
pod spec lint
- 更新podspec文件到远程仓库
git add PrivatePodTest.podspec
git commit -m "update podspec"
git push
- 删除tag
git tag -d <tagname>
git push origin :refs/tags/<tagname>
https://www.cnblogs.com/QM80/p/3576282.html
打算分享一些有争议的话题,并且表达一下我的看法。这是该系列的第一篇,我想讨论的是:类的成员变量应该如何定义?
在 Objective-C 的语言的早期,类的私有成员变量是只能定义在 .h 的头文件里面的。像如下这样:
@interface ViewController : UIViewController {
@private
NSInteger _value;
}
之后,苹果改进了 Objective-C,允许在 .m 里面添加一个特殊的匿名 Category,即没有名字的 Category,来实现增加类的成员变量。像如下这样:
@interface ViewController ()
@property (nonatomic) NSInteger value;
@end
这样的好处是,这些变量在头文件中被彻底隐藏起来了,不用暴露给使用者。
接着,在 2013 年的 WWDC 中,苹果进一步改进了 Objective-C,允许在 .m 的 @implementation 中直接添加类的私有成员变量。像如下这样:
@implementation ViewController {
NSInteger _value;
}
于是,大家对于如何定义私有的成员变量上就产生的分歧。许多人喜欢用匿名的 Category 的方式来定义私有成员变量。但是,我个人更推荐在 @implementation 中直接添加类的私有成员变量。下面我做一些解释。
类型字符串 | 效果说明 | 关键字 | 方向 |
---|---|---|---|
fade | 交叉淡化过渡 | YES | |
push | 新视图把旧视图推出去 | YES | |
moveIn | 新视图移到旧视图上面 | YES | |
reveal | 将旧视图移开,显示下面的新视图 | YES | |
cube | 立方体翻滚效果 | ||
oglFlip | 上下左右翻转效果 | ||
suckEffect | 收缩效果,如一块布被抽走 | NO | |
rippleEffect | 水滴效果 | NO | |
pageCurl | 向上翻页效果 | ||
pageUnCurl | 向下翻页效果 | ||
cameraIrisHollowOpen | 相机镜头打开效果 | NO | |
cameraIrisHollowClose | 相机镜头关闭效果 | NO |
https://blog.csdn.net/lg767201403/article/details/50960909
UIEvent对象代表一个事件。在iOS中,主要有三种事件:触摸事件,运动事件,远程控制事件。远程控制事件主要是外部辅助设备或者耳机的远程命令,例如控制音乐声音的大小,或者下一首歌。运动事件主要是晃动设备等。
触摸事件包括一个或者多个触摸(touches), 每个触摸有一个UITouch对象表示。当触摸事件发生时,系统会通过触摸处理的逻辑找到合适的responder并把UIEvent对象传递过去。responder通过touchesBegan:withEvent:等方法去接收UIEvent对象。
UIResponser都能接收事件,系统提供了几个方法接收UIEvent
//触摸
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
}
//摇晃相关
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent) {
}
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
}
override func motionCancelled(motion: UIEventSubtype, withEvent event: UIEvent) {
}
//远程控制相关
override func remoteControlReceivedWithEvent(event: UIEvent) {
}
获得事件的触摸
//所有的触摸
let allTouches = event.allTouches()
//获得UIView的触摸
event.touchesForView(self.view)
//获得UIWindow的触摸
event.touchesForWindow(self.view.window!)
事件的时间戳
//事件的时间戳
event.timestamp
事件中特定手势的触摸
let gesture = UITapGestureRecognizer(target: self, action: "Tap")
event.touchesForGestureRecognizer(gesture)
三种事件类型
UIEventTypeTouches
UIEventTypeMotion
UIEventTypeRemoteControl
事件亚类型
UIEventSubtypeNone = 0,//触摸事件的亚类型
UIEventSubtypeMotionShake = 1,//摇晃
UIEventSubtypeRemoteControlPlay = 100,//播放
UIEventSubtypeRemoteControlPause = 101,//暂停
UIEventSubtypeRemoteControlStop = 102,//停止
UIEventSubtypeRemoteControlTogglePlayPause = 103,//播放和暂停切换
UIEventSubtypeRemoteControlNextTrack = 104,//下一首
UIEventSubtypeRemoteControlPreviousTrack = 105,//上一首
UIEventSubtypeRemoteControlBeginSeekingBackward = 106,//开始后退
UIEventSubtypeRemoteControlEndSeekingBackward = 107,//结束后退
UIEventSubtypeRemoteControlBeginSeekingForward = 108,//开始快进
UIEventSubtypeRemoteControlEndSeekingForward = 109,//结束快进
使用UIButton 能解决这个问题...
好像是 injected 搞的鬼 - - , 还得测试...
https://www.jianshu.com/p/5068b6f02238
http://www.imooc.com/article/265329?block_id=tuijian_wz
http://xummer26.com/blog/CGAffineTransform-simple-analysis.html