Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Swift中的UITargetedPreview中删除背景视图_Swift_Xcode - Fatal编程技术网

从Swift中的UITargetedPreview中删除背景视图

从Swift中的UITargetedPreview中删除背景视图,swift,xcode,Swift,Xcode,我正在尝试删除我的UITargetView的背景视图。我把背景颜色弄清楚了,但是,你仍然可以看到背景的框架 这就是它目前的样子: 我目前有一个视图,其中包含文本容器和图像,这就是我用作UITargetedPreview视图的内容 有没有办法只显示图像和文本而不显示背景框?您是否尝试过将UIView子类化为UIControl? 我有一个类似的问题,但在我的例子中,UITargetedPreview的视图有问题。但是,将UIView更改为UIControl修复了所有问题。尝试删除该背景视图的阴影。

我正在尝试删除我的
UITargetView
的背景视图。我把背景颜色弄清楚了,但是,你仍然可以看到背景的框架

这就是它目前的样子:

我目前有一个视图,其中包含文本容器和图像,这就是我用作
UITargetedPreview
视图的内容


有没有办法只显示图像和文本而不显示背景框?

您是否尝试过将UIView子类化为UIControl?
我有一个类似的问题,但在我的例子中,UITargetedPreview的视图有问题。但是,将UIView更改为UIControl修复了所有问题。

尝试删除该背景视图的阴影。

隐藏阴影有一种棘手的方法,为此,您应该在视图层次结构中找到一个具有
\u UIPlatterSoftShadowView
类名的视图,然后将其隐藏

func viewByClassName(视图:UIView,类名:String)->UIView?{
让name=NSStringFromClass(类型(of:view))
如果name==className{
返回视图
}
否则{
用于视图中的子视图。子视图{
如果let view=viewByClassName(视图:子视图,类名:类名){
返回视图
}
}
}
归零
}
重写func tableView(tableView:UITableView,willDisplayContextMenu配置:UIContextMenuConfiguration,animator:UIContextMenuInteractionAnimating?){
DispatchQueue.main.async{
如果let window=UIApplication.shared.delegate?.window{
如果let view=self.viewByClassName(视图:窗口,类名:“\u UIPlatterSoftShadowView”){
view.ishiden=true
}
}
}
}

注意:它不是文档化的内部类,可以随时更改,但现在在ios 13/14上都可以使用。

在显示目标视图之前,您需要研究UIBezierPath()以勾勒出要包含的特定区域

之后,您应将特定路径指定给阴影路径/可见路径

let params = UIPreviewParameters()
        params.backgroundColor = .clear
        if #available(iOS 14.0, *) {
            params.shadowPath = bubblePath
        } else {
            params.visiblePath = bubblePath
        }

    

如果您将目标预览框更改为仅包含消息而不包含用户图标,则应该可以。您可以共享所需结果的模型吗?是否希望阴影仅位于图像后面?另外,考虑发送图像后再发送另一条消息,即文本。比如iMessage的工作原理。嗨,你能提供更多的代码吗?谢谢您不需要为此编写代码,只需在情节提要上选择您用作UITargetedPreview的视图,然后将类更改为uicontrol我刚刚尝试过,不再工作,ios 14.4您有什么解决方案吗?谢谢你,不工作,布罗希,可以。你能帮我解决问题吗