1
我想轉換一個UIView的方式,增加一個角度(有兩個消失點)(見下文)。添加扭曲與消失點投影到CAlayer
我爲什麼要以這樣做的原因是因爲我想改變視圖的內容是一個UITableView的細胞。
我是新來的這種編碼,但我認爲我將不得不改變屬於子視圖的CALayer。但是,我相信,我感興趣的轉換不能使用CATransform3D創建。
有沒有人有一個想法如何解決這個問題?
我想轉換一個UIView的方式,增加一個角度(有兩個消失點)(見下文)。添加扭曲與消失點投影到CAlayer
我爲什麼要以這樣做的原因是因爲我想改變視圖的內容是一個UITableView的細胞。
我是新來的這種編碼,但我認爲我將不得不改變屬於子視圖的CALayer。但是,我相信,我感興趣的轉換不能使用CATransform3D創建。
有沒有人有一個想法如何解決這個問題?
看來我已經找到一種方法來規避/解決問題:
使用CATransform3D轉換,可以近似通過拆分視圖分爲兩個部分(兩個獨立UITableViews)華帝點。這些應該由實現必要和協議的UIViewController(而不是由x代碼提供的UITableViewController)管理。
然後在viewDidLayoutSubviews:方法中使用下面的代碼來轉換兩個tableviews。
- (void) viewDidLayoutSubviews {
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
// left View
// vantage point
rotationAndPerspectiveTransform.m34 = 1.0/-150.0;
// Z-rotation of 90°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 90.0 * M_PI/180.0, 0, 0,1);
// X-rotation of 25°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, -25.0 * M_PI/180.0, 1, 0,0);
// left view
[self.view viewWithTag:1].layer.transform = rotationAndPerspectiveTransform;
//right view
rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0/-150;
// Z-rotation of 90°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 90.0 * M_PI/180.0, 0, 0,1);
// X-rotation of 30°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 25.0 * M_PI/180.0, 1, 0,0);
// right view
[self.view viewWithTag:2].layer.transform = rotationAndPerspectiveTransform;
}
一旦轉換後,兩個tableview可以移動,以便它們整齊地合在一起。剩下的唯一工作就是連接一臺電視和另一臺電視的滾動。我還沒有想到這一點。