2016-05-18 3 views
4

このクラスは、直立した画像にパースペクティブを配置します。レイヤ変換マトリックス(CATransform3Dなど)ですが、IBDesignable?

これは完全に動作しますが、IBDesignableを使用してストーリーボードでは動作しません。それは非常に悲しいです。

ストーリーボードでIBransform3Dなどを使用してIBDesignableでライブ表示することはできますか?

// 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は@IBDesignableにすることができます。 @UIDesignableクラスの両方をレンダリングできないことがわかります。私はこの例のためにClass TwistableViewを作成しました。

Class inspector for custom view controllerClass inspector for custom view

+0

それが答えだように見えます - それは行うことはできません!どうも – Fattie

関連する問題