iOS 9.2.1 Xcode 7.2.1 UIPageControl 点被绘制在彼此之上

Posted

技术标签:

【中文标题】iOS 9.2.1 Xcode 7.2.1 UIPageControl 点被绘制在彼此之上【英文标题】:iOS 9.2.1 Xcode 7.2.1 UIPageControl dots are drawn on top of each other 【发布时间】:2016-03-02 04:32:24 【问题描述】:

我在界面生成器中创建了一个 UIViewController 并在根 UIView 之上放置了一个 UIPageControl,根 UIView 的背景颜色为橙色,UIPageControl 具有默认配置,除了页数设置为 5(更改页数产生相同的输出)。没有与控制器关联的代码。 UIPageControl 使用 AutoLayout 定位到根 UIView 的中心(我也尝试在没有 AutoLayout 的代码中这样做,产生相同的结果)。 当我启动它时,左上角只有一个点可见,打开“调试视图层次结构”显示所有点都已绘制,但每个点都绘制在相同的 x、y 位置(x = 0、y = 0)。 这是IB的截图:

以及“Debug View Hierarchy”的输出截图:

【问题讨论】:

我看到五个点,有什么问题? 您会看到五个点相互重叠,它们相互重叠,并且不可见,“调试视图层次结构”屏幕截图显示了从透视图中显示视图 z 位置的视图。 @马特。能否请您尝试在您的机器上执行相同操作,看看是否相同? 你能发布你的示例项目吗?这样我可以检查你在做什么。显然它只需要一个视图控制器 @matt 好的,我刚刚使用相同的视图控制器创建了一个新项目,但结果工作正常,看起来我的项目有问题。我正试图找出究竟是什么。谢谢。 :) 没错——创建一个新项目是一项关键的调试技术,因为这样你就可以看到是否是其他原因导致了问题。 【参考方案1】:

问题出在 UIViewExtension 中,事实证明你不应该扩展“origin”:

extension UIView 
  var origin: CGPoint 
    get 
      return frame.origin
    
    set 
      frame.origin = origin
    
  

【讨论】:

谢谢,谢谢@binchik。客户注意到 UIPageController 不再工作,我根本没有接触过这方面的代码。我在 1 个月前购买了一个非常相似的扩展。

以上是关于iOS 9.2.1 Xcode 7.2.1 UIPageControl 点被绘制在彼此之上的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 7.2.1 上使用 IOS 7.0 模拟器

Cordova 6.0.0 iOS 本地化与 cordova-ios@4.0 和 Xcode 7.2.1

该应用程序在通过 Testflight 在 iOS 9.2.1 上启动几秒钟后崩溃

Xamarin:无法在 iOS 9.2.1 设备上运行应用程序

STM32+ENC28J60+UIP协议栈实现WEB服务器示例

STM32+ENC28J60+UIP协议栈实现WEB服务器示例