📜  自定义屏幕演示控制器 coner radius swift (1)

📅  最后修改于: 2023-12-03 14:57:07.890000             🧑  作者: Mango

自定义屏幕演示控制器 coner radius swift

在iOS开发中,屏幕演示控制器经常用来展示应用程序的功能和特性。然而,在默认的情况下,这些控制器的外观可能不符合我们的设计要求。幸运的是,我们可以自定义这些控制器的外观,包括它们的圆角半径。

圆角半径

圆角半径是指控制器的边框角的弧度。我们可以通过更改半径值来调整演示控制器的外观。Swift中,我们可以使用cornerRadius属性来设置控制器的圆角半径。

class PresentationController: UIPresentationController {
    
    var controllerRadius: CGFloat = 10
    
    override var frameOfPresentedViewInContainerView: CGRect {
        var presentedViewFrame = CGRect.zero
        if let containerViewBounds = containerView?.bounds {
            presentedViewFrame.size = size(forChildContentContainer: presentedViewController,
                                           withParentContainerSize: containerViewBounds.size)
            let origin = CGPoint(x: containerViewBounds.midX - presentedViewFrame.size.width / 2,
                                  y: containerViewBounds.midY - presentedViewFrame.size.height / 2)
            presentedViewFrame.origin = origin
        }
        return presentedViewFrame
    }
    
    override func containerViewWillLayoutSubviews() {
        super.containerViewWillLayoutSubviews()
        presentedView?.layer.cornerRadius = controllerRadius
        presentedView?.layer.masksToBounds = true
    }
}

在上面的代码片段中,我们创建了一个自定义控制器PresentationController,重写了frameOfPresentedViewInContainerViewcontainerViewWillLayoutSubviews()方法。在containerViewWillLayoutSubviews()方法中,我们可以设置控制器的圆角半径值,并将masksToBounds属性设置为true以确保控制器边框不溢出。

小结

通过使用cornerRadius属性,我们可以轻松自定义演示控制器的外观。然而,在设计程序时需要确定好需要实现的效果,以便灵活运用圆角半径等属性。