草庐IT

ios - Setter 在 Swift 中不起作用

我正在尝试使用设置大小和原点的快捷方式扩展UIView,如Obj-C中所做的那样here.getter工作很好,但setter不行。任何想法为什么?我做错了什么?这是我从Obj-C重写为Swift的代码:extensionUIView{...varheight:CGFloat{get{returnself.frame.size.height}set{varr=self.frame;r.size.height=height;self.frame=r;}}这是另一个,因为CGRect属性是“val”varwidth:CGFloat{set{self.frame.size.width=wid

swift - 二元运算符问题 '-'

我收到一个奇怪的错误,指出二元运算符“-”不能应用于我正在开发的最新版本的应用程序中的两个CGPoint操作数。这是非常令人困惑的,因为我知道它可以应用,因为我在这个应用程序的先前构建中运行了相同的代码行。我试图通过重写项目来解决错误并遇到同样的问题。导致问题的代码行如下:funcupdateRKnobWithPosition(position:CGPoint){varpositionToCenter=position-baseCentervardirection:CGPointifpositionToCenter==CGPointZero{direction=CGPointZero}

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 - 键盘出现 Action

我正在尝试制作一个带有UITextField和UIButton的UIView-就像聊天应用程序一样。我想检测屏幕上出现的键盘级别并根据它更改UIView高度约束。我该怎么做?现在我有了这个@IBOutletweakvarmessageTextField:UITextField!@IBOutletweakvarbottomBarConstrains:NSLayoutConstraint!overridefuncviewDidLoad(){super.viewDidLoad()NSNotificationCenter.defaultCenter().addObserver(self,sel

ios - Xcode:如何在纵向和横向之间保持图像大小 - 不调整大小

对于我的Xcodeswift项目,我希望图像在纵向和横向之间保持相同的大小。或者至少,在景观上没有那么大。问题来自于我对图像的特定尾随和前导数字限制。我想让图像在纵向模式下靠近屏幕的两侧;所以约束让它看起来很整洁。然而,在风景中,由于这些前导/尾随尺寸,图像变得太大并占用了太多屏幕空间。这是我想做的事情的粗略图:http://i.imgur.com/lYQwOuL.png编辑:我想在iPhone和iPad设备上执行此操作,所以我要处理大屏幕和小屏幕。但我想保留横向的纵向宽度。或者至少,让我的横向图像变小。解决此类问题的最佳方法是什么?也许它在容器中居中并将宽度设置为某个“纵向屏幕宽度”

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 - 如何在 Swift 中累积旋转图像? (Xcode 8)

我正在尝试在我的View中制作一个按钮,每次点击“旋转”按钮时,它都会将我的花哨时钟图像旋转45度。我在网上研究过的所有教程和答案都只会到达你按下按钮一次然后重置的地步(在我的例子中,应用程序只执行一次操作,然后什么都不做)。所以我试图让它在第一次点击时从0度到45度,在第二次点击时从45度到90度,等等,无限地,即每次点击按钮时存储结果,然后从那里继续。有什么想法吗?这是我的简单代码。作为编码新手,我们将不胜感激-非常感谢@IBActionfuncRotate(_sender:AnyObject){letrotation:CGFloat=0.785398UIView.animate(

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