草庐IT

uicontrol

全部标签

swift - 添加目标 :action:forControlEvents: selector syntax when target is nil?

我想要一个父ViewController来处理由它的一个子ViewController生成的Target-Actions。根据Apple文档,这应该可以通过将target设置为nil并遵循响应链来实现。Ifyouspecifynilforthetargetobject,thecontrolsearchestheresponderchainforanobjectthatdefinesthespecifiedactionmethod.https://developer.apple.com/documentation/uikit/uicontrol但是当target为nil时,我该如何编写a

ios - 某些 UIControl 的协议(protocol)一致性扩展

这是我的案例:我希望2个或更多UIControl符合通用协议(protocol):例如UISlider、UIStepper、MyCustomControl。这就是他们所拥有的:classUIStepper{varvalue:Float}classUISlider{varvalue:Double}classMyCustomControl{varvalue:Int}现在,我喜欢类似于这样的协议(protocol)的东西:protocolValuable{associatedtypeTvarvalue:T}然后可以使用[Valuable]。但是我当然会遇到著名的PAT问题protocolVa

ios - UIButton 在向其添加扩展后停止在界面生成器中显示 UIControl 操作

我有最简单的用户界面-只有一个按钮:如您所见,我可以将任何事件(如UITouchUpInside)从界面生成器拖到我的代码中。但是如果我向UIButton添加一些扩展,例如:protocolSomeProtocol{}extensionUIButton:SomeProtocol{}那些事件不再可见:我正在使用Xcode版本8.2(8C38)我能以某种方式返回吗?这是Xcode中的错误吗? 最佳答案 这似乎是一个Xcode错误。AworkaroundyoucouldtryistoextendUIControlwiththeprotoc

swift - 使用 CAGradientLayer 旋转 UIControl 无法正确更新 Swift

我没有使用普通按钮,而是将UIControl子类化因为我需要给它添加一个渐变。我还有一种方法可以添加阴影和事件指示器(在下图中不可见)作为有状态按钮,以在(例如)进行API调用时阻止用户敲击按钮。试图获得UIControl真的很棘手旋转,为了能够做到这一点,我将阴影作为单独的View添加到包含UIControl的容器View中所以可以添加阴影。现在的问题是控件的行为不像旋转View-让我向您展示上下文的屏幕抓取:这是中间旋转,但肉眼几乎可见-图像显示渐变是蓝色长度的75%UIView在图像中。https://github.com/stevencurtis/statefulbutton为

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 中创建自定义 UIControl 事件?

我正在创建自定义UI元素并希望触发自定义UIControlEvent。我已经发现,有一个ApplicationReserved范围。遗憾的是这不起作用,因为它“不符合协议(protocol)‘RawRepresentable’:enumMyCustomEvents:UIControlEvents{caseIncrease=0x01000000caseDecrease=0x02000000}两个问题:1)这是自定义事件的正确方法吗?2)如何正确定义自定义事件?谢谢! 最佳答案 因为你想要的只是另一个UIControlEvent,您可以

ios - 如果 SuperView 中的 UITextFields 是主动响应者,UIControl 不会调用事件处理程序

UIButton我有一个ViewController,用户需要在其中输入任务级数据。然后,ViewController在其View层次结构中有一个自定义UIView(CrewView),其中有一个按钮,用户可以按下该按钮将人员添加到任务中。这些人也是自定义UIView(PersonViews),它们作为subview添加到CrewView。布局看起来像这样:VC|_ScrollView|EntryFields|_CrewView(UIViewsubclass)|UIButton|_PersonView(UIViewsubclass)|EntryFields|UIButton|_Pers

swift - 为自定义 UIControl 创建 ControlProperty

是否可以对结构Reactive进行扩展,其中基类是我从UIControl继承的自定义控件?当我尝试以下代码时:extensionReactivewhereBase:CustomControl{publicvarvalue:ControlProperty{returnCustomControl.rx.value(self.base,getter:{customControlincustomControl.customProperty},setter:{customControl,valueincustomControl.customProperty=value})}}我收到以下错误:In

swift - 使用 RxSwift 自定义 UIControl 子类

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

ios - UIControl 的 sendActions 在测试目标中不起作用

我正在尝试测试当UITextField发送editingChanged事件时调用特殊处理程序。因此,为此,我通过sendActions方法模拟此事件。但它在测试目标中不起作用,在项目中一切正常(运行模式-模拟器)。我写了一个小例子:classStrange{privatelethandler:()->Voidinit(textField:UITextField,handler:@escaping()->Void){self.handler=handlertextField.addTarget(self,action:#selector(textableValueChanged),for