5

このクラスは、正立した画像に遠近法を適用します。

それは完全に機能しますが、IBDesignable を使用したスト​​ーリーボードではライブで機能しません。これは非常に悲しいことです。

IBDesignableでStoryboardのライブ表示にCATransform3Dなどを利用することはできますか??

// 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);
        }
    }
4

1 に答える 1

1

ライブ プレビューの変換に関しては既に問題がありました。機能していないようです。まだ実装されていない可能性があります。

UIView@IBDesignable にできるのは sだけです。ここでは、両方の @UIDesignable クラスをレンダリングできないことがわかります。例としてクラス TwistableView を作成しました。

カスタム ビュー コントローラーのクラス インスペクター カスタム ビューのクラス インスペクター

于 2016-05-19T10:09:08.517 に答える