IOS Xcode中的样式按钮
Posted
技术标签:
【中文标题】IOS Xcode中的样式按钮【英文标题】:Styling Buttons in IOS Xcode 【发布时间】:2015-09-01 16:15:44 【问题描述】:我是 ios 开发新手。在 Windows Phone 开发中,我们使用在应用程序全局位置中定义按钮控件的样式(例如外观),并通过分配样式属性在应用程序中任何按钮的任何位置使用该样式。
IOS XCode 中有类似的东西吗?我知道我可以在 XCode 的属性和外观窗口中自定义按钮。但是通过这种方式,我必须为应用程序中的每个类似按钮赋予样式。如果有任何变化,我必须在任何地方进行更改。 IOS 开发人员在这种情况下会做什么?
【问题讨论】:
你可以继承 UIButton。当你需要一个按钮时,写var myButton = MyCustomButton()
而不是var myButton = UIButton()
【参考方案1】:
如果您想以标准方式为应用中的所有按钮设置样式,则可以为UIButton
设置外观代理样式。您可以通过调用类方法UIButton.appearance()
来获得一个,然后按照您希望按钮的外观设置返回值的样式。您还可以通过调用UIButton.appearanceWhenContainedIn()
之类的方法来获得更细粒度的外观。
【讨论】:
这很整洁。有没有办法从 Xcode UI 而不是以编程方式做到这一点?我想为一个按钮设置样式,然后以某种方式使其样式成为某种可重用的“类”(如在 CSS 类中)。 遗憾的是,没有,至少没有内置方式。您可以从 xib 加载视图并使用其属性为其类设置应用范围的外观代理。【参考方案2】:创建一个 UIButton 子类。 例如创建一个带有圆角和边框的 UIButton:
头文件
#import <Foundation/Foundation.h>
@interface XYRoundedCornerButton : UIButton
@end
实现文件
...import headers etc...
@implementation XYRoundedCornerButton
- (void)awakeFromNib
[super awakeFromNib];
self.layer.cornerRadius = 8.0f;
self.layer.masksToBounds = YES;
self.layer.borderRadius = 1.0f;
self.layer.borderColor = UIColor.redColor;
@end
【讨论】:
【参考方案3】:如果您使用情节提要,则无需在课堂上添加任何代码。 只需拖动一个按钮并设置您想要的所有属性,无论是背景颜色、角半径等,无论您想要什么。然后将其复制并粘贴到您想要的任何位置,或者选择按钮,ALT+DRAG 它。
【讨论】:
这对于在创建后无法同时调整所有按钮的能力是不利的。以上是关于IOS Xcode中的样式按钮的主要内容,如果未能解决你的问题,请参考以下文章