2014-03-05 126 views
0

我需要在滾動時創建如下圖所示的表格視圖動畫,但是我對動畫幾乎沒有任何想法。而且我還需要通過向內移動選擇的單元格進行動畫製作,並在上下單元格關閉時消失(例如在刪除iPhone中的文本消息時完成的動畫)。 TableCellUITableViewCell在滾動時彎曲動畫

+1

嘿!我想給你一些鏈接,值得一看:http://www.thinkandbuild.it/animating-uitableview-cells/,https://developer.apple.com/library/ios/documentation /uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html,http://stackoverflow.com/questions/12202221/uitableview-core-animation –

+0

好東西!我從該網站重新創建了相同的示例,現在我將如何更改此數學旋轉= CATransform3DMakeRotation((90.0 * M_PI)/ 180,0.0,0.7,0.4); rotation.m34 = 1.0/-600; cell.layer.transform = rotation; cell.layer.anchorPoint = CGPointMake(0,0.5)'帶來我的動畫 – KhanXc

+1

嘿!你想研究的是名爲Core Graphics affineTransformation。我建議看看這裏:https://developer.apple.com/library/mac/documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_affine/dq_affine.html –

回答

2

您必須劫持scrollView(將自己添加爲TableViewDelegate旁邊的ScrollViewDelegate),並且表視圖將自動沿着側面桌面事件轉發scrollview事件。

(self.tableView.delegate =自我)是真正談話既

<UIScrollViewDelegate, UITableViewDelegate> 

我已經在也計算到電池的頂部的距離的例子的輔助函數。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    NSArray *rows = [self.tableView indexPathsForVisibleRows]; 
    for (NSIndexPath *path in rows) { 
     UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:path]; 
     float percent = [self cellDistanceAsPercentageFromTableViewCenterAtRow:cell]; 
     cell.layer.sublayerTransform = CATransform3DMakeScale(percent, percent, 1); 
    } 
} 
//Calculate distance of the cell as a percentage from the bottom of the actual visible contentView 
-(float)cellDistanceAsPercentageFromTableViewCenterAtRow:(UITableViewCell *)cell { 
    float position = cell.frame.origin.y; 

    float offsetFromTop = self.tableView.contentOffset.y; 

    float percentFromBottom = (position-offsetFromTop+ROW_HEIGHT)/self.tableView.frame.size.height; 
    percentFromBottom = MIN(MAX(percentFromBottom, 0), 1); 

    return percentFromBottom; 
} 
+0

不工作的兄弟 –