Circlelayout 模擬一個(gè)時(shí)鐘

##UICollectionViewLayout寫(xiě)一個(gè)Layout繼承自UICollectionViewLayout哥桥,實(shí)現(xiàn)以下方法://返回cell的Layout屬性- (nullable UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath;//返回SupplementaryView的Layout屬性(HeaderView绑谣、FooterView)- (nullable UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath;//返回DecorationView的Layout屬性- (nullable UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString*)elementKind atIndexPath:(NSIndexPath *)indexPath;實(shí)現(xiàn)prepareLayout方法设易,完成布局。在prepareLayout方法中調(diào)用[super prepareLayout];-(void)prepareLayout{? ? [super prepareLayout];? ? [self.attrsArr removeAllObjects];? ? //注冊(cè)Decoration class? ? [self registerClass:[DecorationView class] forDecorationViewOfKind:@"DecorationView"];//注冊(cè)Decoration View? ? }? ? layoutAttributesForElementsInRect方法中添加需要布局的所有Elements的Attributes? ? -(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect{? ? NSInteger? count=[self.collectionView numberOfItemsInSection:0];? ? //添加DecorationView的LayoutAttributes? ? [self.attrsArr addObject:[self layoutAttributesForDecorationViewOfKind:@"DecorationView" atIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]]];? ? for (int i=0; i, <#CGFloat ty#>):只能變化一次崔挖,因?yàn)檫@種方式的變化始終是以最原始的狀態(tài)值進(jìn)行變化的案站,所以只能變化一次

UIButton *head = (UIButton *) [self.view viewWithTag:10];

head.transform = CGAffineTransformMakeTranslation(0,-10);

(2)CGAffineTransformTranslate(CGAffineTransform t, <#CGFloat tx#>, <#CGFloat ty#>):能夠多次變化痛黎,每次變化都是以上一次的狀態(tài)(CGAffineTransform t)進(jìn)行的變化,所以可以多次變化

head.transform = CGAffineTransformTranslate(head.transform, 0, -10);

(3) CGAffineTransformIdentity:清空所有的設(shè)置的transform(一般和動(dòng)畫(huà)配合使用以躯,只能使用于transfofrm設(shè)置的畫(huà)面)

UIButton *head = (UIButton *) [self.view viewWithTag:10];

head.transform = CGAffineTransformIdentity;

(4)CGAffineTransformMakeScale( CGFloat? sx,? CGFloat? sy) (縮放:設(shè)置縮放比例)僅通過(guò)設(shè)置縮放比例就可實(shí)現(xiàn)視圖撲面而來(lái)和縮進(jìn)頻幕的效果槐秧。

UIButton *head = [self.view viewWithTag:10];

head.transform = CGAffineTransformScale(head.transform,1.5,1.5);

(5) CGAffineTransformMakeRotation( CGFloat? angle) (旋轉(zhuǎn):設(shè)置旋轉(zhuǎn)角度)

UIButton *head =? [self.view viewWithTag:10];

head.transform = CGAffineTransformMakeRotation(M_PI_2);

###實(shí)現(xiàn)UIView繞固定點(diǎn)旋轉(zhuǎn)

定義方法:

CGAffineTransform? GetCGAffineTransformRotateAroundPoint(UIView *view,float centerX, float centerY ,float x ,float y ,float angle){

//centerX ,centerY 為當(dāng)前View的中心點(diǎn)

x = x - centerX;

y = y - centerY;

CGAffineTransform? trans = CGAffineTransformTranslate(view.transform,x, y);

trans = CGAffineTransformRotate(trans,angle);

trans = CGAffineTransformTranslate(trans,-x, -y);

return trans;

}

使用如下:

float centerSecondX = self.secondHand.bounds.size.width/2;

float centerSecondY = self.secondHand.bounds.size.height/2;

float xSecond = self.secondHand.bounds.size.width/2;

float ySecond = self.secondHand.bounds.size.height;

CGAffineTransform transSecond = GetCGAffineTransformRotateAroundPoint(self.secondHand,centerSecondX,centerSecondY ,xSecond,ySecond,1*second/30.0*M_PI);

self.secondHand.transform = transSecond;

效果:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市忧设,隨后出現(xiàn)的幾起案子刁标,更是在濱河造成了極大的恐慌,老刑警劉巖址晕,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膀懈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谨垃,警方通過(guò)查閱死者的電腦和手機(jī)启搂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)刘陶,“玉大人胳赌,你說(shuō)我怎么就攤上這事〕赘簦” “怎么了疑苫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)牡直。 經(jīng)常有香客問(wèn)我缀匕,道長(zhǎng),這世上最難降的妖魔是什么碰逸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任乡小,我火速辦了婚禮,結(jié)果婚禮上饵史,老公的妹妹穿的比我還像新娘满钟。我一直安慰自己胜榔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布湃番。 她就那樣靜靜地躺著夭织,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吠撮。 梳的紋絲不亂的頭發(fā)上尊惰,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音泥兰,去河邊找鬼弄屡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鞋诗,可吹牛的內(nèi)容都是我干的膀捷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼削彬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼全庸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起融痛,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤壶笼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后酌心,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拌消,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挑豌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年安券,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氓英。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侯勉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出铝阐,到底是詐尸還是另有隱情址貌,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布徘键,位于F島的核電站练对,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吹害。R本人自食惡果不足惜螟凭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望它呀。 院中可真熱鬧螺男,春花似錦棒厘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至淆院,卻和暖如春何乎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背土辩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工宪赶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脯燃。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓搂妻,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親辕棚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子欲主,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容