微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – 层变换矩阵(CATransform3D等)但具有IBDesignable?

本课程将透视直立图像.

它完美地工作但是在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),1,0);
        }
    }

解决方法

我已经遇到了实时预览转换的问题.它似乎不起作用,也许还没有实现.

有一件事,只有UIViews可以是@IBDesignable.在这里,您可以看到无法呈现两个@UIDesignable类.我为这个例子创建了一个Class TwistableView.

Class inspector for custom view controller

Class inspector for custom view

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐