草庐IT

ios - 使用 IBDesignable+UIView(storyboard) 查看抽奖但在应用程序上看不到

我正在尝试在应用程序上绘制一些虚线,但它仅在具有IBDesignable的main.storyboard上绘制。当我在iOS模拟器上运行该应用程序时,没有任何显示。发生了什么事?绘制代码:@IBDesignableclassAnalogView:UIView{fileprivateletthickHorizontalLayer=CAShapeLayer()fileprivateletthinHorizontalLayer=CAShapeLayer()@IBInspectablevarthickYCoord=50.0@IBInspectablevarthinYCoord=52.5over

ios - 我如何制作一个 Sequence 来遍历从 UIView 到 View 层次结构的所有祖先( super View )到根?

我希望UIView有一个属性,该属性返回层次结构中View的所有祖先的序列。这对于查找与特定类型匹配的最近的对象等目的很有用:lettableView=cell.ancestors.first(where:{$0isUITableView})实现ancestors属性的好方法是什么? 最佳答案 使用sequence(first:next:)函数,来自Swift标准库,一个更短的解决方案也是可能的:extensionUIView{varancestors:AnySequence{returnAnySequence(sequence(f

ios - Swift 3 - 如何从 Superview 和数组中删除所有 subview

我目前有一个双for循环,用于创建UIViewCGRect正方形的X乘Y网格。该循环还将网格的每个UIView/Square添加到一个二维数组,允许我访问网格的每个Cell并通过循环的索引值更改颜色/位置。循环似乎工作正常并完美地显示单元格/正方形,但是过了一会儿我想删除所有正方形并清空数组(但不是完全删除)以便为新的下一个网格腾出空间(这大小可能不同)。我创建了一个函数来从父View中删除所有View。这就是我创建网格的每个“单元格”并将每个“单元格”放入二维数组的方式:letxStart=Int(size.width/2/2)-((gridSizeX*gridScale)/2)le

ios - 隐藏时,并非所有内容都在堆栈 View 中动画化

我目前正在开发iOS(swift3)应用程序。我有一个简单的垂直堆栈View,其中包含2个水平堆栈View。在某些情况下,我想隐藏底部的那个。我通过使用以下代码来做到这一点UIView.animate(withDuration:3){self.bottomStackView.isHidden=true;};下面显示的动画并没有真正达到我的预期:虽然按钮的边框在隐藏时正确地设置了动画,但每个按钮内的文本似乎直到最后才受到影响。知道如何解决这个问题吗? 最佳答案 我一直在做一些关于这个主题的研究,它似乎最像articles建议使用堆栈来

ios - 获取 UITapGestureRecognizer 目标

我正在尝试创建一个基本View,其backgroundColor每次被点击时都会在两种颜色之间切换。为了实现这一点,我创建了一个函数,它将要更改的View和要切换的两种颜色作为参数。为此,我需要传递UIView,然后它应该更改。但是UIViews本身无法识别触摸,所以我“链接”(我不确定我是否理解正确)一个UITapGestureRecognizer到它,触发我的ViewController中的一个Action。现在我需要将UITapGestures链接到UIView以便我可以更改它。我意识到我可以简单地将相应的UIView输入到操作中,但我想让这个功能尽可能灵活(只是想从正确的礼仪开

ios - UIImageView .scaleAspectFit 和自动布局无法从 Swift 以编程方式工作

我有几个部分透明的PNG叠加层,以在View中相互叠加显示。覆盖的数量因运行时条件而异。我想在Swift中创建UIImageView实例并将它们添加到View中。在Storyboard中添加UIImageView并通过Swift设置其图像时,我可以轻松获得所需的行为。在这种情况下,我将UIImageView的前导、尾随、顶部和底部固定到父包装器UIView的前导、尾随、顶部和底部。在UIImageView的属性检查器中,我将“ContentMode”设置为“AspectFit”,当Swift设置图像时,大图像会很好地缩小。用户可以在iPhone的小屏幕上看到整个图像。当我动态创建一个U

ios - 如何在 iOS swift 运行时更新 CAGradientLayer 颜色?

我正在使用UIView扩展将渐变层应用到UIView。我需要在滚动tableview时更改运行时的渐变颜色。我使用scrollviewcontentoffset值来更新渐变颜色。我尝试了什么:我试图从superlayer中删除该层并创建一个具有新颜色的新渐变层。但是应用程序出现内存问题并且UI有时会卡住。是否可以在运行时更新CAGradientLayer渐变颜色?extensionUIView{funcapplyGradient(withColourscolours:[UIColor],gradientOrientationorientation:GradientOrientation

ios - 如何在 UIView 上获得长按时间

我想在调用touchesEnded方法时在UIView上获得长按时间。我在UIEvent中寻找类似“时间”或“持续时间”的属性,但找不到。我该怎么办?(我正在创建一个游戏,我想更改图形大小以响应长按时间。例如让大小=20*long_press_sec)环境:Xcode7.0.1Swift2.0 最佳答案 我认为您无法在标准的长按手势识别器上自动获取该信息。您可以使用minimumPressDuration属性设置触发所需的时间,但随后会触发。我已经有一段时间没有用手势识别器做任何复杂的事情了,但是在稍微查看了文档之后,我认为您可以通

ios - 在 Swift 中,如何使用自动布局为 UIView 设置动画,如页面滑入?

我尝试创建一个UIView,它表示一个页面,其大小与设备屏幕相同。由于该应用程序支持方向,因此我使用AutoLayout来构建它。在我尝试设置页面动画以从右侧滑入之前,它工作正常。这是经过一些研究后我能想到的最好的:myView=UIView()myView.backgroundColor=UIColor.orangeColor()parentView.addSubview(myView)myView.translatesAutoresizingMaskIntoConstraints=falsemyView.leftAnchor.constraintEqualToAnchor(pare

ios - Swift:更改 UIView 框架但显示不更新

我正在尝试动态调整UIView框架的大小。我可以更新代码中的框架并看到值已更改,但实际显示永远不会改变,即使我运行setNeedsDisplay()。我正在关注thispost,我通过CGRectMake定义了一个新框架,然后将UIView的框架设置为这个新框架。即,我正在这样做......letnewFrame=CGRectMake(minX,minY,width,height)VUBarCover.frame=newFrame如果我打印出UIView框架的值,我会看到它正在按我喜欢的方式变化。但显示(在模拟器中)从不反射(reflect)这些变化。知道如何解决这个问题吗?更新:更详