草庐IT

ios - 如何使用 AutoLayout 在 iphone x 中处理带有安全区域的键盘?

这个问题在这里已经有了答案:iPhoneXandiPhone8keyboardheightaredifferent(6个答案)关闭4年前。在iphonex中设置安全区域后。当键盘打开安全区域(键盘上方的白色区域)出现在键盘上方时,如何处理键盘?键盘上方的白色区域。处理键盘代码:-funckeyboardWillChangeFrameWithNotification(_notification:Notification,showsKeyboard:Bool){letuserInfo=notification.userInfo!letanimationDuration:TimeInterv

ios - SpriteKit - 安全区域布局 Iphone X

所以,目前我有一个游戏,我用spritekit制作并使用这种方式让所有东西都适合屏幕尺寸:buyButton=SKSpriteNode(texture:SKTexture(imageNamed:"BuyButton"),color:.clear,size:CGSize(width:frame.maxX/2.9,height:frame.maxY/10))buyButton.position=CGPoint(x:-frame.maxX+frame.midX*2,y:-frame.maxY+frame.midY*1.655)addChild(buyButton)如您所见,它使用框架来计算宽

ios - 调整和缩放 SKSpriteNode

我的iOS游戏中有多个游戏对象,其中一些的分辨率比其他的高。用于游戏对象的图形是在运行时随机选择的。我想确保它们在使用时都不会超过一定的尺寸,所以我设计了以下算法:whileself.spriteNode.rSize.width>100&&self.spriteNode.rSize.height>100{self.xScale-=0.01self.yScale-=0.01}其中spriteNode是纹理为图形的对象,rSize是SKSpriteNode上的扩展计算属性,返回节点累积帧的大小。通常,这会导致无限循环。有什么问题?更新1根据LearnCocos2D的评论,我尝试了以下方法:

ios - 带有部分的 UItabelview 内的多个 UICollectionviews - swift

基本上,我正在尝试获得类似于此结果的内容:http://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell无论如何,我想要2个collectionsView,一个在第一部分,另一个在第二部分我如何实现这一点?我在这里抨击我的头......每次我尝试设置委托(delegate)和数据源时它都会失败并说我需要注册一个Nib我也不知道我如何在它的cellForRowAtIndexPath中分离CollectionView,我怎么才能看到哪个正在加载?我怎样才能让它正确加载,以便第一部分有self.genre,第

ios - 在 Swift 中,改编了 AVCaptureVideoDataOutputSampleBufferDelegate,但从未调用 captureOutput

我正在尝试从相机捕获视频帧并在UIImageView上实时显示大量图像。我尝试为我的viewcontroller调整AVCaptureVideoDataOutputSampleBufferDelegate。我还实现了captureOutput,但是captureOutput从未被调用。这是我的代码:importUIKitimportAVFoundationclassViewController:UIViewController,AVCaptureVideoDataOutputSampleBufferDelegate{@IBOutletweakvarimageView:UIImageVi

swift - 如何知道闭包是否归类所有?

我很难弄清楚如何确定何时在闭包主体中使用[weakself]/[unownedself]。在下面显示的两个场景中,根据我的说法,这取决于B类是否拥有传递的闭包。现在如果B类的实现被隐藏我不太确定如何决定使用[弱自我]/[无主自我]。有人可以帮我理解你将如何决定吗?/********Scenario1**********/classA{varb:B?letp="SomePropertyofA"init(){print("InitofA")self.b=B(closure:{(number)->Voidinprint(self.p)//capturingselfbutstillnoneed

ios - 如何启用/禁用来 self 的应用程序的推送通知

我正在开发具有推送通知属性的应用程序。我应该在我的应用程序中启用/禁用推送通知权限而无需转到iPhone设置。有什么办法可以实现吗?我搜索了很多,但没有找到合适的实现方式。有什么帮助吗? 最佳答案 如果用户拒绝推送通知的权限,您不能让他从应用内启用它。但是,您可以在设置应用程序(ViewController)中设置一个按钮,让用户在那里关闭和打开通知。然后您可以设置一个bool值以在发送通知之前进行检查。这样用户就可以使用它而不是在设备设置上禁用应用程序的通知权限。 关于ios-如何启用

swift - 在 Swift 实例成员声明中引用 `self`

我有一个struct设置,它接受一个引用作为单个初始化参数:internalstructNodeState:Equatable{weakvarnode:Node!=nil//...init(node:Node){self.node=node}}我想实例化一个NodeState作为Node类的成员,传递self来设置那个弱引用:publicclassNode:NSObject{internalvarstate=NodeState(node:self)//...}...但是我遇到了这个奇怪的编译错误:Cannotconvertvalueoftype'NSObject->()->Node't

ios - 当键盘可见时更改 Y 原点时出现奇怪的 UIView 行为

上下文:我有一个包含UITextView的UIView。我想在键盘可见时向上移动UIView。所以想法是changetheYposition.问题:有时,当键盘仍然可见时,UIView会返回到其初始Y位置。即使我专注于输入,它也不会再回来了。我真的不知道为什么。插图(gif):https://d17oy1vhnax1f7.cloudfront.net/items/2K0z3P1j1x2f0X2X1B2v/ci.gifPS:键盘在Gif中出现了3次。它是循环的,所以很难区分结束。代码我做了什么,首先我添加了通知观察者:NotificationCenter.default.addObser

ios - UICollectionView 没有滚动到前几个项目的底部

我一直在尝试创建一个可以重复使用的聊天界面。我几乎完成了实现,但有些事情一直困扰着我。如果我在第一次加载界面时像gif那样开始加载消息,您可以看到在第4条消息之后有3条消息没有滚动到底部。第8个是第一个最终滚动的。这因屏幕尺寸而异。在iPhone6s测试设备上,它到达第9条消息,即滚动的消息。我使用contentinset作为保持collectionview可见的方法,每次底部的UIToolbar的框架发生变化时运行以下代码toolBar.inputAccessoryViewFrameChanged={(rect:CGRect)inVoid()letnavigationAndStatu