画像/ PNGの使用を必要としないこの問題の解決策を探しています。 UIButton
の青色の背景色を選択状態で削除する方法を探しています。画像を使用せずにそれを行う方法を見つけることができません。私は基本的に、UITableViewCell
の場合にそのようなことをやろうとしています:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
残念ながら、現時点ではテストマシンから離れていますが、2つのことを試すことができます。
まず、次のプロパティを設定します。
button.adjustsImageWhenHighlighted = NO;
または、Interface Builderの「ハイライト調整画像」のチェックを外します。
それが期待どおりに機能しない場合は、次のように、関連付けたアクションのボタンの選択を解除できます。
- (IBAction)yourButtonAction:(id)sender {
[sender setHighlighted:NO];
}
これと同じ問題があり、UIButtonタイプを「システム」から「カスタム」に変更することで解決しました。青色の背景色は、「カスタム」タイプの選択状態では表示されません。
TintColorのアルファをゼロに変更します。iOSが5.0以降の場合に機能します
UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
button.tintColor = color;
UIButtonもcustom
タイプで、xcode
として設定できます
[〜#〜]または[〜#〜]プログラム的に
let customButton = UIButton(type: .custom)
customButton.setTitle("this is Button", for: .normal)
customButton.setTitleColor(UIColor.blue, for: .normal)
customButton.frame = CGRect(x: 15, y: 50, width: 300, height: 500)
self.view.addSubview( customButton)
これで、UIButtonの青い背景色はなくなりました
ハイライトされた状態でbutton.tintColorを変更しました。これはSwift 3、iOS 10です。
override public var isHighlighted: Bool {
didSet {
self.tintColor = UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 1.0)
}
}
または、インターフェースビルダーで同じことをすることができます
OPの質問に対する直接的な回答ではありませんが、UIButton
サブクラスでこの色を削除するには、次のようにします。
override func layoutSubviews() {
tintColor = .clear
super.layoutSubviews()
}
Swiftバージョン
extension UIButton {
override public var highlighted: Bool {
didSet {
// clear background color when selected
self.layer.backgroundColor = .None
}
}
}