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中的样式按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS(Xcode)中的提交按钮内实现分段控制?

ios/xcode:更改条形按钮项的标题

视图控制器上的 Xcode / Swift 后退按钮

单击iOS / xcode后如何使按钮消失?

绘制一个半圆形按钮 iOS

iOS 和 Xcode 6:按钮上的自动布局文本缩放