草庐IT

ios - 从通用返回类型获取实际类型

我在加载特定类型和名称的Nib的UIView上有一个扩展:extensionUIView{classfuncfromNib()->T?{guardletnib=Bundle(for:T.self).loadNibNamed(String(describing:T.self),owner:nil,options:nil)?[0]else{returnnil}returnnibas?T}}现在在我的Hint类(它是UIView的子类)中,我像这样使用上面的扩展:ifletview=Hint.fromNib(){self.addSubview(view)view.frame=self.bou

swift - subview 通知父 View 属性变化

所以我有一个UIView的自定义子类,它计算触摸次数并将其存储在一个属性中。我们称它为touchableViewtouchableView位于具有用于显示该数字的标签的superView中。我可以正常访问touchableView的属性,但我怎么知道它何时发生变化?正确的做法是什么? 最佳答案 我完全同意TarasChernyshenko委托(delegate)模式适合这种情况,我在代码中创建了一个示例:示例:假设,您自定义的UIView子类称为CustomView。我们在CustomView.swift文件中有以下代码:proto

ios - 无法将从 XIB 创建的自定义 UIView 子类转换为我需要的类(仅 UIView)

我所做的是:1)创建一个.xib文件TranslationInfoWindow.xib:2)创建了包含以下内容的TranslationInfoWindow.swift文件:importUIKitclassTranslationInfoWindow:UIView{//MARK:-Initializersoverrideinit(frame:CGRect){super.init(frame:frame)setupView()}requiredinit?(coderaDecoder:NSCoder){super.init(coder:aDecoder)setupView()}//MARK:-

swift - UIView block 动画完成始终为真

我有一个动画,我最近发现它不工作//timeisavariableusedinmycodeUIView.animate(withDuration:time,delay:0,options:[.curveLinear,.allowUserInteraction],animations:{//thisclassisofTypeUIScrollViewself.setContentOffset(CGPoint(x:self.contentSize.width-self.frame.width,y:0),animated:false)//CompletionHandler},completio

ios - 在我的自定义 View 的 Controller 中创建自定义 IBAction

首先,我不能发布任何代码,但我会尽力描述我的问题。好的。我创建了一个自定义SwiftView文件作为view.xib并将其加载到我的view.swift我加载了那个Xib。Xib是imageview之上的一个简单的label。我可以在我的view.swift文件中创建我的IBOutlet,例如切换图像或更改标签。view.swift只是扩展了UIView。现在我将这个View集成到我的Storyboard中,它有一个Controller(我们称之为otherVC.swift)。现在otherVC.swift想要获取view.swift被触摸的信息。我尝试设置IBAction,但没有设置

ios - 使用 setContainerView 时不显示 SVProgressHUD

我在使用setContainerView时遇到问题,当我将其分配给自定义View时,进度根本不显示。我已经用我的UIView尝试了一切,这非常好,但进展仍然不可见。我已经使用它一段时间了,没有自定义容器View就没有问题。有什么想法吗?编辑例如,这是有效的(显示进度):funcdownload(){SVProgressHUD.show()User.downloadAllUsers{(user)in//DoingthingsDispatchQueue.main.async{//UpdatingUISVProgressHUD.dismiss()}}}但这不起作用(没有显示进度)funcdo

ios - Swift - 将 SKScene 叠加到 UIView 上 - 灰色背景

我是Swift和Xcode的新手,只是在玩弄SpriteKit。我所做的是在main.storyboard中创建了一个UIView。UIView(名为overlayedGameScene)只占据了大约一半的屏幕,所以你应该能够看到主要的UIView(self.view)。importUIKitimportSpriteKitimportGameplayKitclassGameViewController:UIViewController{@IBOutletvaroverlayedGameScene:SKView!overridefuncviewDidLoad(){super.viewDi

ios - UIGraphicsGetCurrentContext 没有出现在 UIView 里面

我必须绘制一个形状并检测用户触摸是否在形状内部,所以我定义了一个继承自UIView的自定义类,如下所示:classShapeView:UIView{overrideinit(frame:CGRect){super.init(frame:frame)}requiredinit?(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenimplemented")}overridefuncdraw(_rect:CGRect){drawShape()}funcdrawShape(){guardletctx=UIGraphicsGetCu

ios - 如何在 iPhone 的自定义 UIView 上启用 UIDragInteraction

我一直在尝试使用Apple的新API在自定义UIView上启用拖动交互。在使用iPad进行测试时,我设法让它工作,但是当我在我的iPhone7-ios11beta3中运行相同的应用程序时,我无法拖动我的自定义UIViews。我注意到在UICollectionView和UITableViews中使用时需要启用拖动交互collectionView.dragInteractionEnabled=truetableView.dragInteractionEnabled=true但我无法在文档或任何地方找到有关在自定义UIView中启用它以使其在iPhone上运行的任何信息。有谁知道为iPhon

ios - 如何在 Swift 4 中向 UIView 添加 subview ?

如何在Swift4中为UIView添加subview?需要在Swift3和Swift4(iOS10+)中工作@IBOutletweakvarviewBody:UIView!@objcvarloadIndicator=UIActivityIndicatorView()@objcletloadBody=UIVisualEffectView(effect:UIBlurEffect(style:.dark))@objcfuncactivityLoad(){DispatchQueue.main.async(){self.loadIndicator.removeFromSuperview()sel