相关疑难解决方法(0)

如何将多行文本添加到UIButton?

我有以下代码......

UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds];
buttonLabel.text = @"Long text string";
[targetButton addSubview:buttonLabel];
[targetButton bringSubviewToFront:buttonLabel];
Run Code Online (Sandbox Code Playgroud)

...我的想法是我可以为按钮添加多行文本,但文本总是被UIButton的backgroundImage遮盖.用于显示按钮子视图的日志记录调用显示已添加UILabel,但无法看到文本本身.这是UIButton中的错误还是我做错了什么?

cocoa-touch uibutton uikit ios

358
推荐指数
13
解决办法
17万
查看次数

覆盖Swift扩展中的方法

我倾向于只将必需品(存储属性,初始化器)放入我的类定义中,并将其他所有内容移动到自己的extension类中,有点像extension我将与之合并的每个逻辑块// MARK:.

例如,对于UIView子类,我最终会得到与布局相关的东西的扩展,一个用于订阅和处理事件等等.在这些扩展中,我不可避免地必须覆盖一些UIKit方法,例如layoutSubviews.我从未注意到这种方法有任何问题 - 直到今天.

以此类层次结构为例:

public class C: NSObject {
    public func method() { print("C") }
}

public class B: C {
}
extension B {
    override public func method() { print("B") }
}

public class A: B {
}
extension A {
    override public func method() { print("A") }
}

(A() as A).method()
(A() as B).method()
(A() as C).method()
Run Code Online (Sandbox Code Playgroud)

输出是A B C.这对我来说没什么意义.我读到有关静态分派的协议扩展,但这不是协议.这是一个常规类,我希望在运行时动态调度方法调用.显然,呼叫C至少应该动态调度和产生C

如果我删除继承NSObject …

swift swift-extensions swift2

119
推荐指数
4
解决办法
6万
查看次数

为什么在使用 titleEdgeInsets 时我的 UIButton 的标题在中间被截断?

这是我这样UIButton定义的:

private var continueButton: AttributedButton = {
    let button = AttributedButton()
    button.backgroundColor = .systemGreen
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 18)
    button.titleEdgeInsets = UIEdgeInsets(top: 6, left: 20, bottom: 6, right: 20)
    button.setTitle("game.continue".localized.uppercased(), for: .normal)
    button.setTitleColor(.white, for: .normal)
    button.cornerRadius = 10
    return button
}()
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此处输入图片说明

uibutton ios swift

4
推荐指数
1
解决办法
149
查看次数

UIButton 未使用指定的文本展开

我在屏幕上有一个 UIButton。UIButton 没有宽度限制。我喜欢将 UIButton 扩展为指定的文本。但结果如下:

在此处输入图片说明

这是实现:

self.translatedPhraseButton.setTitle(self.selectedPhrase.translatedPhrase, for: .normal)
self.translatedPhraseButton.sizeToFit()
self.translatedPhraseButton.titleEdgeInsets = UIEdgeInsets(top: 0.0, left: 5.0, bottom: 0.0, right: 5.0)
self.translatedPhraseButton.layer.cornerRadius = 10.0
self.translatedPhraseButton.layer.masksToBounds = true
self.translatedPhraseButton.backgroundColor = UIColor(fromHexString: "2aace3")
Run Code Online (Sandbox Code Playgroud)

ios swift

2
推荐指数
1
解决办法
1853
查看次数

标签 统计

ios ×3

swift ×3

uibutton ×2

cocoa-touch ×1

swift-extensions ×1

swift2 ×1

uikit ×1