在ios中預設是繞著中心點旋轉的,因為錨點預設在圖層的中點,要想繞著下邊中心點轉,需要改變圖層錨點的位置。 根據錨點,設定position座標,為時鐘的中點。 思考秒針旋轉的角度,怎麼知道當前秒針旋轉到哪,當前秒針旋轉的角度 = 當前秒數 * 每秒轉多少°。
1> 計算一秒轉多少° 360 * 60 = 6
2> 獲取當前秒數,通過日曆物件,獲取日期組成成分 nscalendar -> nsdatecomponents -> 獲取當前秒數 每隔一秒,獲取最新秒數,更新時鐘。
分鐘一樣的做法 時鐘也一樣 每一分鐘,時鐘也需要旋轉,60分鐘 -> 1小時 - > 30° ==》 每分鐘 30 / 60.0 一分鐘時針轉0.5° 把時針和秒針頭尾變尖,設定圓角半徑
#import viewcontroller.h
//獲得當前的年月日 時分秒
#define currentsec [[nscalendar currentcalendar] component:nscalendarunitsecond fromdate:[nsdate date]]
#define currentmin [[nscalendar currentcalendar] component:nscalendarunitminute fromdate:[nsdate date]]
#define currenthour [[nscalendar currentcalendar] component:nscalendarunithour fromdate:[nsdate date]]
#define currentday [[nscalendar currentcalendar] component:nscalendarunitday fromdate:[nsdate date]]
#define currentmonth [[nscalendar currentcalendar] component:nscalendarunitmonth fromdate:[nsdate date]]
#define currentyear [[nscalendar currentcalendar] component:nscalendarunityear fromdate:[nsdate date]]
//角度轉換成弧度
#define angel(x) x/180.0 * m_pi
#define kperseconda angel(6)
#define kperminutea angel(6)
#define kperhoura angel(30)
#define kperhourminutea angel(0.5)
@inte***ce viewcontroller ()
@property (nonatomic,strong) uiimageview *imageclock;
@property (nonatomic,strong) calayer *layersec;
@property (nonatomic,strong) calayer *layermin;
@property (nonatomic,strong) calayer *layerhour;
@end
@implementation viewcontroller
- (void)viewdidload
- (void)timechange
- (uiimageview *)imageclock
return _imageclock;
}- (calayer *)layersec
return _layersec;
}- (calayer *)layermin
return _layermin;
}- (calayer *)layerhour
return _layerhour;
}
iOS動畫之美麗的時鐘
在ios中預設是繞著中心點旋轉的,由於錨點預設在圖層的中點,要想繞著下邊中心點轉,須要改變圖層錨點的位置。依據錨點。設定position座標。為時鐘的中點。思考秒針旋轉的角度,怎麼知道當前秒針旋轉到哪,當前秒針旋轉的角度 當前秒數 每秒轉多少 1 計算一秒轉多少 360 60 6 2 獲取當前秒數。...
Phone漂亮的動畫
此處標明非原創 實現iphone漂亮的動畫效果主要有兩種方法,一種是uiview層面的,一種是使用catransition進行更低層次的控制,cpp uiview beginanimations curl context nil 動畫開始 uiview setanimationduration 0....
iOS 動畫實戰之Lottie動畫
1.作為收藏按鈕,是不是很活潑?2.返回與選單之間的切換,生動有趣 3.還有各種形變動畫.更棒的是,lottie有各種不同的版本,安卓,ios,前端都可以使用,理論上動畫做一套就可以共用,大大的減少了工作量.使用方法 整合環境 移動端同學整合lottie框架,ui ue同學整合ae的bodymovi...