質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2662閲覧

Swift iPadでプリンターの選択ができません。

t.harima

総合スコア55

iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/10/12 02:12

編集2018/10/12 02:33

iPhoneではプリンターの選択画面が表示され、プリンターを選択後プリントできるのですが、iPadではプリンターの選択画面が出ず、WARNINGが発生してプリントできません。WARNINGの内容は、下記の通りです。よろしくお願い致します。
WARNING: Calling -[UIPrinterPickerController presentAnimated:completionHandler:] on iPad

swift4

1import UIKit 2 3let devWidth = UIScreen.main.bounds.size.width 4let devHeight = UIScreen.main.bounds.size.height 5 6class ViewController: UIViewController { 7 8 var myImageView : UIImageView! 9 var myLabel : UILabel! 10 var myButton : UIButton! 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // Do any additional setup after loading the view, typically from a nib. 15 16 myLabel = UILabel() 17 myLabel.frame = CGRect(x: devWidth/2.0, y: 100.0, width: devWidth/2.0, height: 30.0) 18 myLabel.text = "Air Print Test" 19 self.view.addSubview(myLabel) 20 21 myImageView = UIImageView() 22 myImageView.frame = CGRect(x: devWidth/4.0, y: 200.0, width: devWidth/2.0, height: 200.0) 23 let myImage : UIImage = UIImage(named: "sample.jpg")! 24 myImageView.image = myImage 25 self.view.addSubview(myImageView) 26 27 myButton = UIButton() 28 myButton.frame = CGRect(x: devWidth/4.0, y: 500.0, width: devWidth/2.0, height: 50.0) 29 myButton.backgroundColor = UIColor.lightGray 30 myButton.setTitle("プリント", for: .normal) 31 myButton.tag = 1 32 myButton.addTarget(self, action: #selector(ViewController.onClickMyButton(sender:)), for: .touchUpInside) 33 self.view.addSubview(myButton) 34 } 35 36 @objc func onClickMyButton(sender: UIButton){ 37 showPrinterPicker() 38 } 39 40 func showPrinterPicker() { 41 // UIPrinterPickerControllerのインスタンス化 42 let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: nil) 43 // UIPrinterPickerControllerをモーダル表示する 44 printerPicker.present(animated: true, completionHandler: 45 { 46 [unowned self] printerPickerController, userDidSelect, error in 47 if (error != nil) { 48 // エラー 49 print("Error : (String(describing: error))") 50 } else { 51 // 選択したUIPrinterを取得する 52 if let printer: UIPrinter = printerPickerController.selectedPrinter { 53 print("Printer's URL : (printer.url)") 54 self.printToPrinter(printer: printer) 55 } else { 56 print("Printer is not selected") 57 } 58 } 59 } 60 ) 61 } 62 63 func printToPrinter(printer: UIPrinter) { 64 // 印刷してみる 65 let printIntaractionController = UIPrintInteractionController.shared 66 let info = UIPrintInfo(dictionary: nil) 67 // info.outputType = .general 68 // info.jobName = "Sample Print" 69 info.orientation = .portrait 70 printIntaractionController.printInfo = info 71 72 // スクリーンショット 73 //コンテキスト開始 74 UIGraphicsBeginImageContextWithOptions(UIScreen.main.bounds.size, false, 0.0) 75 //viewを書き出す 76 self.view.drawHierarchy(in: self.view.bounds, afterScreenUpdates: true) 77 // imageにコンテキストの内容を書き出す 78 let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()! 79 //コンテキストを閉じる 80 UIGraphicsEndImageContext() 81 82 //印刷する内容 83 printIntaractionController.printingItem = image 84 printIntaractionController.print(to: printer, completionHandler: { 85 controller, completed, error in 86 }) 87 } 88 89} 90

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/10/12 02:21

UIPrinterPickerControllerは表示されるけど、印刷が出来ないという質問でしょうか?
t.harima

2018/10/12 02:26

UIPrintPickerControllerが表示されません。プリンタの選択ができません。
fuzzball

2018/10/12 02:29

では、そのようにタイトル/内容を修正して下さい。
t.harima

2018/10/12 02:33

分かりました。
guest

回答1

0

ベストアンサー

少々古い記事ですが、
UIPrintInteractionController in iPad is giving me two warnings

これを見ると、iPadの場合は、

  • present(from:animated:completionHandler:)
  • present(from:in:animated:completionHandler:)

を使わないといけないようです。

投稿2018/10/12 02:48

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t.harima

2018/10/12 03:47

ありがとうございました。 printerPicker.present(from: CGRect(x: devWidth/2, y: 20, width: 0, height: 0), in: view, animated: true, completionHandler: ..... で、プリンターを選択できるようになり、印刷もできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問