草庐IT

UIView-Encapsulated-Layout-Width

全部标签

ios - iOS Swift 中的 CALayer 或 UIView?

任何人都可以向我指出解释为iOS添加View和图层的正确方法的教程或示例代码(或两者!)。最好是在Swift中而不是ObjC。我有自己添加SKNodes时有效的代码,没问题,但如果我添加一个渐变层-我希望它是背景中的天空,渐变覆盖其他所有内容。我尝试了各种形式的在上面的索引处添加子层等,但似乎没有任何效果。我想这是我对CALayer和UIView的基本理解。我找不到好的教程:(感谢任何帮助。干杯亚当。这是一个示例。View充满了渐变,这很好,但按钮似乎隐藏在下面,尽管试图将其强制置于背景层之上。importQuartzCoreclassNightScene:SKScene,SKPhys

ios - 拖动时调整 UIView 框架

我试图在拖动时更改UIView框架。我继承了UIView并编写了touchesBegan和touchesMoved方法。他们在这里:overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){lettouch=touches.firststartPosition=touch?.locationInView(self)}overridefunctouchesMoved(touches:Set,withEventevent:UIEvent?){lettouch=touches.firstletendPosition=touch

不同设备尺寸的 iOS Auto Layout 约束值

我使用Storyboard来布置我的观点。我用约束定位View。我有一个关于调整约束的问题。如何在不编写if/else循环的情况下为不同的设备尺寸设置不同的约束常量。有没有办法在Storyboard中设置它?例如,我对父布局有一个顶部约束,常数值为10。这对于iPhone5屏幕来说没问题,但在iPhone6/6plus屏幕上它应该高于10。因此应该计算约束。目前我计算的比例因子是这样的:letbounds=UIScreen.mainScreen().bounds;letwidth=bounds.size.width;letscaleFactor=width/320;//320becau

ios - 如何正确地 "clean"从 Swift 中的 Superview 中删除的 UIView? - 操作系统

我想我可能不明白内存是如何在Swift中正确释放的,这就是为什么我想问这个问题:如果我使用带有标签的UIView创建给用户的消息。我用动画展示它,然后使用“.removeFromSuperview()”。什么时候释放内存?它解除分配的条件是什么?我问是因为如果它在应用程序关闭之前没有解除分配-这意味着对于应用程序的运行-每条显示然后隐藏的消息都会无缘无故地占用内存。感谢任何解释的人:) 最佳答案 View保持对其subview的强引用。删除subview后,父View将放弃此引用。如果您没有其他强引用,保留计数将减少到零,并且Vie

ios - 在运行时在 Swift 中更改受自动布局约束的 UIView 的框架

例如,我使用此代码更改名为Propo的UIView的框架位置:self.Propo.frame.origin.x-=self.view.frame.width(Propo在Storyboard中有约束)但是当应用View消失并重新出现时,UIView会将自身重置到其原始位置。我该怎么做才能解决它?我希望UIView在我以编程方式更改它时保持其位置。我已经通过任何其他方式尝试了updateViewConstraints()... 最佳答案 约束和手动帧操作是直接冲突的。你必须选择一个或另一个。您应该改为“提升”您希望更改的约束,方法是

Swift SnapKit 如何使用相对位置布局 UIView

funcsetupPosition(){box.snp.makeConstraints{(make)->Voidinmake.edges.equalTo(view).inset(UIEdgeInsetsMake(64+20,20,250,20))}textField.snp.makeConstraints{(make)->Voidinmake.edges.equalTo(box).inset(UIEdgeInsetsMake(5,5,150,5))}stackBoxOne.snp.makeConstraints{(make)->Voidinmake.top.equalTo(box).o

ios - UIView 在 prepareForSegue 方法中为 nil

抱歉让标题混淆了,我不知道如何让它更有意义。我正在使用这个例子实现信息窗口:github我在popView中添加了几个标签并将它们链接到secondaryVieController。我已将PrimaryViewController中的prepareForSegue方法修改为:overridefuncprepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?){ifsegue.identifier=="showInfo"{letinfo=segue.destinationViewControlleras!SecondaryViewC

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 - 如何在 UIView 上获得长按时间

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