2013-12-10 17 views
5

私はいくつかのUIButtonを持つカスタムセルを持っています。私は、ボタンの上にそのようなターゲットアクションを作成しました:UIButtonのデフォルトのタップフェードアニメーションがUITableViewControllerカスタムセルにありません

[cell.customLocationButton addTarget:self action:@selector(customLocationButtonTap:) forControlEvents:UIControlEventTouchUpInside]; 

私はUIButtons上のデフォルトのiOSフェードアニメーションが表示されていないのにアクションが素晴らしい仕事しますか? IBからUIButtonを使用する際に標準であると思っていましたか?あなたのXIBで

+1

は、私が初期化されませんあなたのcustomLocationButtonの初期化部 – manujmv

+0

を示しました。私はあなたがIBを使用するときに初期化する必要があると思いませんか? –

+1

ちょうどあなたの** customLocationButton **のための** UIButtonTypeSystem **のタイプを使用してください。**カスタムタイプのように** customLocationButton **を望みます。 –

答えて

0

属性インスペクタ内のあなたのボタンを選択し、ボタンタイプの内側に、あなたが選択して変更、ボタンの外観をし、それに応じて感じることができるオプションに従って取得します: -

enter image description here

+0

に設定されています。システムに設定されています。 –

+0

システムでは設定が必要ですが、他のアニメーションが必要な場合はCABasicAnimationを使用する必要があります –

+0

ボタンをドラッグしてVCのデフォルトビューに直接配置すると、タップで基本フェードアニメーションが得られます。これはカスタムアニメーションを設定することなく行われます。 カスタムセルでボタンを使用しているときに、手動でCABasicAnimationレイヤーを追加する必要がありますか? –

0

あなたができる別のこと次のとおりです。

スウィフト:

button.showsTouchWhenHighlighted = true 
button.setTitleColor(UIColor.blueColor(), forState: .Normal) 
button.setTitleColor(UIColor.lightGrayColor(), forState: .Selected) 
3

は同じプロを開始しました傷み。私はsetTitleColor:forState:でハイライト表示の色を変えるボタンを得ることができましたが、他のシステムボタンのようにハイライトから通常の状態にフェードしませんでした。

私のボタンのタイプがUIButtonTypeCustomだったからです。それをUIButtonTypeSystemに切り替えると私のために解決されました。私はiOS9でこれを実行していることに注意してください。

ここselfを前提としていスニペット(スウィフト)がUIViewまたはサブクラスでいます:

let button = UIButton(type: .System) 
button.setTitle("Title", forState: .Normal) 
button.sizeToFit() // Sizes the button frame based on the title. 
addSubview(button) 
関連する問題