草庐IT

Subclass

全部标签

swift - 将函数参数参数限制为 Swift 中的基类

假设以下设置:classBaseClass{}classSubClass:BaseClass{}infixoperator>--{associativityleft}func>--(lhs:BaseClass,rhs:SubClass){//dosomethinghere}我正在寻找的是一种排除SubClass的方法从被用作lhs与运算符的争论​​>--.这将是对通用参数的负类型约束——即T:BaseClasswhereT!=Subclass:func>--whereB!=SubClass>(lhs:B,rhs:SubClass)但是好像没有!=您可以作为泛型的否定类型约束提供的参数。

ios - Swift 3 API 在子类中重命名

我在我的代码中遇到了一些意外行为,其中UICollectionViewDelegate回调只有在我使用pre-Swift3方法签名时才会收到。为了演示这个问题,我创建了两个ViewController子类:classViewController:UIViewController,UICollectionViewDelegate,UICollectionViewDataSource{@IBOutletvarcollectionView:UICollectionView!funccollectionView(_collectionView:UICollectionView,numberOf

ios - 从子类在 Swift 中具有泛型的基类转换子类

我有一个基类类型和一个子类类型,其中子类包括一个泛型类型。如果我将子类以基类类型的形式存储,但我想将其类型转换回子类类型,Swift似乎不会让我这么做。下面是我的意思的一个例子:classBase{}classNext:BasewhereT:UIView{varview:Tinit(view:T){self.view=view}}leta:[Base]=[Next(view:UIImageView()),Next(view:UILabel())]foritemina{iflet_=itemas?Next{print("Hey!")}}为什么"Hey!"从未被打印出来?编辑:"Hey!"

ios - UIBezierPath子类初始化器

我正在尝试创建UIBezierPath的子类,以添加一些对我有用的属性。classMyUIBezierPath:UIBezierPath{varselectedForLazo:Bool!=falseoverrideinit(){super.init()}/*CompileError:Mustcalladesignatedinitializerofthesuperclass'UIBezierPath'*/init(rect:CGRect){super.init(rect:rect)}/*CompileError:Mustcalladesignatedinitializerofthesup

ios - 它显示 "required initializer init must be provided in subclass of UIControl"当我覆盖 init(frame : CGRect)

此代码有效:importUIKitclasswheel:UIControl{}但是这段代码没有:classwheel:UIControl{overrideinit(frame:CGRect){super.init(frame:frame)}当我覆盖init(frame:CGRect)而不是init(coderaDecoder:NSCoder).为什么我必须执行init(coderaDecoder:NSCoder)?如果我没有实现init(frame:CGRect)为什么我不需要实现它?我找到了一个类似的StackOverflow帖子,但没有解释:Swift:Error:'require

ios - 在 Swift 中子类化 UINavigationBar

我正在尝试创建一个自定义UINavigationBar类,然后使用Storyboard将其设置为我的UINavigationController的类导航栏。这是我的UINavigationBar类的代码:classCustomNavBar:UINavigationBar{overridefuncdrawRect(rect:CGRect){super.drawRect(rect)//Drawingcodeself.backgroundColor=UIColor.orangeColor()letmyLabel=UILabel(frame:CGRect(x:0,y:4,width:600,h

swift - 使用 RxSwift 自定义 UIControl 子类

我正在创建UIControl的自定义子类(我需要重写它的绘制方法),我想添加RxSwift以将其isSelected属性绑定(bind)到我的模型。到目前为止一切顺利。这很好用。我的问题是如何更改值isSelected属性以响应用户touchUpInside事件?我的第一个尝试是使用UIControl的addTarget方法,但是ControlProperty没有报告以编程方式更改isSelected的值(如文档中所述)。但我可以想出另一种方法来解决这个问题。感谢任何帮助。子类源码:classSYYesNoButton:UIControl{overrideinit(frame:CGRe

arrays - 类型为 [SuperClass] 且元素类型为 [Subclass] 的 Swift 数组

有人可以解释为什么这段代码会抛出错误吗?classBase{}classSubclassOfBase:Base{}letbaseItems=[Base](count:1,repeatedValue:Base())letsubclassItems=[SubclassOfBase](count:3,repeatedValue:SubclassOfBase())varitems=[Base]()items.append(SubclassOfBase())//OKitems.appendContentsOf(baseItems)//OKitems.appendContentsOf(subcla

swift - 带有圆角的 UIButton 的子类(快速)

我想使用swift创建一个圆角按钮。为了使其可重用,我更喜欢将UIButton子类化,并提出以下内容:importFoundationimportUIKitclassLoginButton:UIButton{letcorner_radius:CGFloat=4.0overridefuncdrawRect(rect:CGRect){super.drawRect(rect)self.layer.cornerRadius=corner_radius}}不幸的是,这似乎并没有像我希望的那样工作,尽管它编译得很好。也许我遗漏了什么-我对此很陌生!有什么想法吗? 最佳答

ios - 在两个嵌套子类中调用 super.viewDidLoad() 时,我遇到了 Swift 的无限循环

我正在开发一个用Swift编写的iOS应用程序。我有一个UITabBarController的子类,然后是一个嵌套的子类:classHWTabBarController:UITabBarController{overridefuncviewDidLoad(){super.viewDidLoad()...}}classMainTabBarController:HWTabBarController{overridefuncviewDidLoad(){super.viewDidLoad()...}}这在iOS模拟器中运行良好,甚至当我在iPhone上调试应用程序时也是如此。但是当我存档应用程