如何在UIView中使SwiftUI视图透明或半透明?

都会

尽管SwiftUI视图0.5在添加到UIView之后将不透明度设置为,但仍然具有纯色。如果仔细观察,可以在下面的矩形的顶部角落看到SwiftUI视图的白色背景。

下面的代码在根视图中添加了一个UILabel和一个SwiftUI矩形视图,该矩形的不透明度为0.5,因此它想看透其后的文本“ Test”,但是它看起来像是不透明的背景。

我还尝试将SwiftUI视图实例的父视图的背景色设置为color clear,但是,

是否可以在UIView中使SwiftUI视图透明或半透明?

import UIKit
import SwiftUI

import PlaygroundSupport

struct Foo: View {
    var body: some View {
        ZStack {
            RoundedRectangle(cornerRadius: 18)
                .fill(Color.red)
        }
        .background(Color.red)
        .opacity(0.5)
    }
}

class ViewController:UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()

        let label = UILabel()
        label.text = "TEST"
        
        view.addSubview(label)
        label.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            label.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            label.centerXAnchor.constraint(equalTo: view.centerXAnchor)
        ])
        
        let fooView = Foo()
        let controller = UIHostingController(rootView: fooView)
        let subview = controller.view!
        
        view.addSubview(subview)
        view.backgroundColor = .clear
        subview.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            
            subview.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            subview.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            
            subview.widthAnchor.constraint(equalToConstant: 100),
            subview.heightAnchor.constraint(equalToConstant: 100)
        ])
    }
}

let viewController = ViewController()
PlaygroundPage.current.liveView = viewController
PlaygroundPage.current.needsIndefiniteExecution = true

在此处输入图片说明

都会

因为“默认情况下,每个主机控制器视图都是不透明的”,所以将以下内容添加到SwiftUI视图即可解决此问题。

let fooView = Foo()
let controller = UIHostingController(rootView: fooView)
let subview = controller.view!
        
subview.backgroundColor = .clear // <--- THIS LINE

参考如何在工作表视图上使用不透明的背景色?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SwiftUI中制作半透明的导航栏?

来自分类Dev

如何在ImageList中使用半透明图像

来自分类Dev

如何在Gnuplot中使用半透明点制作散点图?

来自分类Dev

如何在xubuntu中使窗口不半透明?

来自分类Dev

如何在pygame中使半圆变成半透明的?

来自分类Dev

如何在ImageList中使用半透明图像

来自分类Dev

如何在xubuntu中使窗口不半透明?

来自分类Dev

如何在android中使视图透明?

来自分类Dev

如何在PowerPoint 2010中使对象从半透明变为不透明?

来自分类Dev

如何在半透明背景上创建透明区域(div)?

来自分类Dev

如何使Terminal半透明?

来自分类Dev

如何使jPanel半透明?

来自分类Dev

如何使布局半透明?

来自分类Dev

如何使Terminal半透明?

来自分类Dev

如何使线条半透明?

来自分类Dev

SwiftUI:fullScreenCover的半透明背景

来自分类Dev

如何在iOS7中使UIView透明

来自分类Dev

如何在图形视图上绘制半透明窗体,以使控件清晰呈现

来自分类Dev

如何在文本字段中使用图像设置HTML表单的半透明背景

来自分类Dev

如何用半透明视图覆盖ImageView?

来自分类Dev

在 Swift 3 中创建半透明的 Uiview

来自分类Dev

如何制作半透明的布局?

来自分类Dev

如何创建半透明形状?

来自分类Dev

如何绘制半透明的NSTableRowView?

来自分类Dev

如何显示半透明的活动?

来自分类Dev

如何使UIPageViewController背景半透明?

来自分类Dev

如何使jpg图像半透明?

来自分类Dev

如何显示半透明的活动?

来自分类Dev

如何绘制半透明的NSTableRowView?