我问了几个关于子类化UIButton的堆栈溢出问题,一些人告诉我我不应该子类化UIButton。UIButton的子类化有哪些负面影响?我知道这很含糊,但是除了子类化UIButton之外还有哪些替代方法? 最佳答案 Cocoa框架采用对象组合模式比传统类层次结构更合适的方法。一般来说,这意味着UIButton上可能有一个属性,您可以在其中设置另一个对象来处理按钮的各个方面。这是“自定义”按钮工作方式的首选方式。这种模式的一个主要原因是许多库组件创建按钮并且不知道您希望它们创建您的子类的实例。编辑,你自己的工厂方法我注意到您上面关于当
我有一个带有一行按钮的水平ScrollView。除非我进行极快的滑动,否则ScrollView不会滚动。如果我将按钮设置为userInteractionEnabled=NO,则滚动会按预期工作,但当然,按钮根本不起作用。此应用在iOS7及更早版本中运行良好。这似乎是iOS8的“功能”。我确实注意到我可以捕获按钮的拖动事件,但我不知道如何将它重定向回scrollView。我想我需要用UIView替换我的按钮并自己管理事件,但如果有人有其他想法或解决方案,我将不胜感激。 最佳答案 我发现在iOS8中,UIScrollView的底层UIP
我有一个带有一行按钮的水平ScrollView。除非我进行极快的滑动,否则ScrollView不会滚动。如果我将按钮设置为userInteractionEnabled=NO,则滚动会按预期工作,但当然,按钮根本不起作用。此应用在iOS7及更早版本中运行良好。这似乎是iOS8的“功能”。我确实注意到我可以捕获按钮的拖动事件,但我不知道如何将它重定向回scrollView。我想我需要用UIView替换我的按钮并自己管理事件,但如果有人有其他想法或解决方案,我将不胜感激。 最佳答案 我发现在iOS8中,UIScrollView的底层UIP
如何使用InterfaceBuilder在UIButton中逐行居中文本?我正在搜索选项,只是没有看到它。这是按钮: 最佳答案 您不能将文本设置为在Nib居中。但是您可以更改代码中的对齐方式:-(void)viewDidLoad{[superviewDidLoad];self.myButton.titleLabel.textAlignment=UITextAlignmentCenter;} 关于iphone-使用IB在UIButton上居中多行文本,我们在StackOverflow上找到
如何使用InterfaceBuilder在UIButton中逐行居中文本?我正在搜索选项,只是没有看到它。这是按钮: 最佳答案 您不能将文本设置为在Nib居中。但是您可以更改代码中的对齐方式:-(void)viewDidLoad{[superviewDidLoad];self.myButton.titleLabel.textAlignment=UITextAlignmentCenter;} 关于iphone-使用IB在UIButton上居中多行文本,我们在StackOverflow上找到
当enabled=NO时,UIButton不应该变灰/变灰吗?我在黑色背景上有一个简单的UIButton(没有自定义图像,没有任何自定义,只是用IB拖动它并更改了大小和标题)。当我以编程方式将其设置为禁用时,它会一直保持白色!现在我正在使用一个小的愚蠢的解决方法:当我需要禁用按钮时,按钮顶部的hiddenblackbg0,5alphaUIView变为hidden=NO...但我想正确设置按钮...有什么想法吗? 最佳答案 还有另一种无需对整个按钮进行alpha设置的方法:[startButtonsetTitleColor:[UI
当enabled=NO时,UIButton不应该变灰/变灰吗?我在黑色背景上有一个简单的UIButton(没有自定义图像,没有任何自定义,只是用IB拖动它并更改了大小和标题)。当我以编程方式将其设置为禁用时,它会一直保持白色!现在我正在使用一个小的愚蠢的解决方法:当我需要禁用按钮时,按钮顶部的hiddenblackbg0,5alphaUIView变为hidden=NO...但我想正确设置按钮...有什么想法吗? 最佳答案 还有另一种无需对整个按钮进行alpha设置的方法:[startButtonsetTitleColor:[UI
我想将UIButton子类化以添加一些我需要的属性(不是方法...只有属性)。这里是我的子类的代码://.h-----------------------@interfaceMyButton:UIButton{MyPropertyType*property;}@property(nonatomic,retain)MyPropertyType*property;@end//.m--------------------------@implementationMyButton@synthesizeproperty;@end下面是我如何使用这个类:MyButton*btn=((MytButt
我想将UIButton子类化以添加一些我需要的属性(不是方法...只有属性)。这里是我的子类的代码://.h-----------------------@interfaceMyButton:UIButton{MyPropertyType*property;}@property(nonatomic,retain)MyPropertyType*property;@end//.m--------------------------@implementationMyButton@synthesizeproperty;@end下面是我如何使用这个类:MyButton*btn=((MytButt
我的构建目标是为IOS5设置的,据我所知,UIButton.tintColor被引入...我在ViewController的viewDidLoad中有这个[timelineButtonsetTintColor:[UIColorblackColor]];[timelineButtonsetTitle:@"test"forState:UIControlStateNormal];文本正确更改但按钮不是黑色?谢谢! 最佳答案 根据documentation:Thispropertyisnotvalidforallbuttontypes.您需