2017-12-14 17 views
0

iOSのアクションシートに画像を追加する方法はありますか?アプリストアやリンゴミュージックアプリでリンゴと同じです。リンゴのドキュメントの私の基本的な検索では、私はサブクラスを作っていないか、アクションシートにサブビューを追加していません。アクションシートiOSの各オプションの画像

"UIActionSheetはサブクラス化されていません。また、階層にビューを追加する必要もありません。" - アップルのドキュメント

enter image description here

答えて

1

UIActionSheetは、iOSの8.3以降廃止されました。 UIAlertControllerおよびそのUIAlertActionを使用してください。 Add Image to UIAlertAction in UIAlertController

+0

その素晴らしい解決策しかし、そのハック。 – AAV

+0

その後、同じ方法でスタイリングするボタン付きのカスタムコントローラ以外のソリューションはありません。 – ryancrunchi

0

UIAlertControllerには、UIActionSheetと同じ制限があります。実際にレイアウトをカスタマイズする方法はありません。

SDCAlertViewのようなライブラリをチェックして、より機能的なカスタマイズオプションと機能的に同等の機能を提供したい場合があります。あなたはこのような何かをする必要があるアクションシートに画像を追加するには

+0

彼のソリューションは動作しますが、このようなことをして、私に間違って見えます。 var action = UIAlertAction(タイトル: "メニュー項目1"、スタイル:.default、ハンドラ:なし) action.setValue(image、forKey: "image") – AAV

+0

私は知って同意しています。そのようなハック。 – Gereon

0

...

スウィフト

let image = UIImage(named: "myImageName") 
let action = UIAlertAction(title: "Action 1", style: .default, handler: nil); 
action.setValue(image, forKey: "image") 

のObjective C

UIAlertAction* action = [UIAlertAction actionWithTitle:@"Action 1" style:UIAlertActionStyleDefault handler:nil]; 
[action setValue:[[UIImage imageNamed:@"myImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forKey:@"image"]; 

乾杯:)

+0

この種の解決策の問題は、リンゴを変更してsetImage "image"からコードのsetImgにメソッドの名前を変更しようとすると、クラッシュが開始されるとします。 #selectorを使用して保護することはできますが、安全な選択肢はまだありません。 – AAV