Ios 视图显示在调试视图层次结构中,但不显示在设备/sim卡上
这个问题使我非常困惑。我有一个小的UI视图,用来显示选择了哪个按钮。但是,它没有显示在我的应用程序中-它应该在“本地活动”下,但没有显示: 那很好,我想,我只是调试视图层次结构,看看它在哪里!而且它看起来正是它应该在的地方:Ios 视图显示在调试视图层次结构中,但不显示在设备/sim卡上,ios,iphone,xcode,view,uiview,Ios,Iphone,Xcode,View,Uiview,这个问题使我非常困惑。我有一个小的UI视图,用来显示选择了哪个按钮。但是,它没有显示在我的应用程序中-它应该在“本地活动”下,但没有显示: 那很好,我想,我只是调试视图层次结构,看看它在哪里!而且它看起来正是它应该在的地方: 有人知道这里发生了什么吗?谢谢你的帮助 我真蠢——我把它修好了。我不确定为什么它在视图调试器中显示为顶部,但它位于另一个UIView的后面。我找到了导致此问题的原因 我以编程方式在视图控制器内创建了两个子视图(子视图A和子视图B);尽管帧的大小和位置、alpha值以及
有人知道这里发生了什么吗?谢谢你的帮助 我真蠢——我把它修好了。我不确定为什么它在视图调试器中显示为顶部,但它位于另一个UIView的后面。我找到了导致此问题的原因 我以编程方式在视图控制器内创建了两个子视图(子视图A和子视图B);尽管帧的大小和位置、alpha值以及所有其他常见的可见性问题都已检查出来,但这两个问题都没有出现在我的设备上。子视图A是视图控制器视图的子视图,子视图B是子视图A的子视图。这两个视图在我的设备上都不可见,但当我查看视图调试器层次结构时,我能够看到子视图B(即使其超视图子视图A不可见) 长话短说,当我删除了改变子视图A层掩码属性的代码时,这个问题得到了解决。下面是在层上调用的确切方法:
extension CALayer {
func round(corners: UIRectCorner, withRadius radius: CGFloat, withBounds: CGRect? = nil) {
let path = UIBezierPath(roundedRect: withBounds ?? bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.mask = mask
}
}
我在过去使用过这种方法,没有任何问题,所以我确信这个问题是间接的,但也许这将为将来的人指明正确的方向
编辑
问题不仅在于上面显示的代码,还在于调用round()后我正在更改子视图A的帧。一旦我确保在给定最终位置和大小后只对()子视图A进行取整,设备和调试器的所有问题都得到了解决 我在Xcode 9中遇到了同样的问题。原因是我在viewDidLoad中将视图的alpha设置为0,但没有将alpha设置回1.0。
出于某种原因,调试视图层次结构显示它的alpha为1.0…我也有同样的问题,但当我重新连接插座时,它又开始工作。您希望在设备上看到什么?按钮的背景色是什么,可能是您的按钮覆盖了要显示为选中状态的视图。并描述如何突出显示UIView。背景是UIColor.clearColor(),从我的屏幕截图很难分辨,但在3D视图中,它肯定位于“活动”按钮的顶部。迈克-我希望在“活动”按钮下看到白线,你可以在“查看调试层次结构”中看到,但在正在运行的应用程序上看不到。我很愚蠢-我修复了它。我不知道为什么它会在视图调试器中显示为顶部,但它位于另一个UIView后面。对我来说,
alpha
在“用户定义的运行时属性”中被设置为0
。我遇到了这种情况,并且在将视图alpha设置为0 lol的转换中重用了代码。我也有同样的问题。尝试了所有的东西。。与make alpha 1一样,hidden属性设置为false,通过[[UIApplication sharedApplication].keyWindow将所有其他视图置于前面:yourSubview]。如果有人发现了,请给我建议一些其他的解决方案。@KyleBashour:你是怎么发现的?@nsganster哇,这正是我遇到的问题。谢谢你提出来。值得注意的是,视图调试器中显示了零alpha内容,但应用程序中没有。您是如何将视图向前推进的?这件事发生在meThis身上,我也是如此。对我有效的解决方案是对视图进行子类化,并在layoutSubviews()
中进行圆角处理,正如这里所讨论的:谢谢,您刚才为我节省了大量的时间。对我来说,有一些屏幕动画将alpha设置为0,这将使视图显示在视图调试器中,而不是在设备中。