层变换矩阵(CATransform3D 等)但带有 IBDesignable?
Posted
技术标签:
【中文标题】层变换矩阵(CATransform3D 等)但带有 IBDesignable?【英文标题】:Layer transform matrix (CATransform3D, etc.) but with IBDesignable? 【发布时间】:2016-05-18 23:27:13 【问题描述】:这个类将透视一个直立的图像。
它可以完美运行,但不能在带有 IBDesignable 的 Storyboard 中实时运行。真是太可悲了。
是否可以使用 CATransform3D 等在带有 IBDesignable 的 Storyboard 上进行实时显示??
// Twist.swift .. twist on Y, perspective from the left
import UIKit
@IBDesignable
class Twist:UIViewController
@IBInspectable var perspective:CGFloat = 0.5 // -1 to 1
@IBOutlet var im:UIView! // the image you want to twist on y
override func prepareForInterfaceBuilder()
twist(perspective)
override func viewDidAppear(animated: Bool)
twist(perspective)
super.viewWillAppear(animated)
func twist(f:CGFloat) // -1 to 1
// hinge around left edge
im.layer.anchorPoint = CGPointMake(0, 0.5)
im.center = CGPointMake(0.0, self.view.bounds.size.height/2.0)
// base transform, twist on y
var t:CATransform3D = CATransform3DIdentity
t.m34 = -1/500
im.layer.transform = t
im.layer.transform = CATransform3DRotate(t, f*CGFloat(M_PI_2), 0, 1, 0);
【问题讨论】:
【参考方案1】:我已经遇到了实时预览转换的问题。似乎它只是不起作用,可能还没有实现。
有一点,只有UIView
s 可以是@IBDesignable。在这里您可以看到两个@UIDesignable 类都无法呈现。我为示例创建了一个类 TwistableView。
【讨论】:
以上是关于层变换矩阵(CATransform3D 等)但带有 IBDesignable?的主要内容,如果未能解决你的问题,请参考以下文章