Swiftでモーダル表示時にviewWillDisappearが呼ばれない

Swiftでモーダル表示時にviewWillDisappearが呼ばれないということが起きました。 以下のようにボタンを押したタイミングでフルスクリーンのモーダルが表示されるとします。 modalPresentationStyle を .fullScreen にすると viewWillDisappear と viewDidAppear がモーダル表示のタイミングで呼ばれますが、.overFullScreen にすると viewDidAppear しか呼ばれませんでした。 参考: iOSにおけるモーダル表示まとめ


UICollectionViewでContextMenuを使う

UICollectionViewでContextMenuを使う方法です。 セルを長押しするとContextMenuを表示します。 参考: iOS13から追加されるContext Menusについて


Swiftでドラッグで移動し、長押しでContextMenuを表示する

Swiftでドラッグで移動し、長押しでContextMenuを表示する方法です。 ViewController でタッチのイベントを検出し、その箇所にViewを移動させています。 同時にContextMenuのinteractionも設定しています。


MKMapViewで経路を表示する

MKMapViewで経路を表示する方法です。 新宿駅から秋葉原駅への経路を表示しています。 参考: 【Swift】MapKitで経由地点を含めたルートディレクションの表示方法


MKMapViewの表示範囲を設定する

MKMapViewの表示範囲を設定する方法です。 秋葉原駅(35.6984, 139.7731)を中心として緯度経度が±0.1となるように表示されます。 参考: 【Swift】MapKitで経由地点を含めたルートディレクションの表示方法


CollectionViewに区切り線を追加する

CollectionViewに区切り線を追加する方法です。 参考: UICollectionView の Layout で悩んだら Decoration Viewを用いてCollection Viewに区切り線と背景を追加する


CollectionViewの背景にスクロールする画像を設定する

CollectionViewの背景にスクロールする画像を設定する方法です。 よくわかっていないのですが、backgroundColor に画像を設定すると背景にスクロールする画像を設定できます。


UICollectionViewのサンプル

UICollectionViewのサンプルです。 makeColor() 関数でランダムに生成した色をセルに入れています。 スクロールするたびに色が変わります。


Swiftで最低幅を持ち横幅が可変なボタンを作成する

Swiftで最低幅を持ち横幅が可変なボタンを作成する方法です。 ボタンの横幅が最低53pxで、余白が12px以上あるボタンを作成しています。


CollectionViewで並び替え時に選択されたセルにアニメーションを付与する

CollectionViewで並び替え時に選択されたセルにアニメーションを付与する方法です。 長押しすると移動できるようになります。 参考: iOS – Longpress drag and drop using UICollectionView with Animation


UICollectionViewのセルを並び替える

UICollectionViewのセルを並び替える方法です。 長押しすると移動できるようになります。 参考: CollectionViewの並び替えを実装する | RE:ENGINES


SwiftでMapViewの中央に十字を用意し、その中央の座標を取得する

SwiftでMapViewの中央に十字を用意し、その中央の座標を取得する方法です。 スクロールしたりピンチしたタイミングで regionDidChangeAnimated が呼ばれるので、その時の中心の座標を取得しています。


PHPickerViewControllerを使って画像を選択する

PHPickerViewController を使って画像を選択する方法です。 UIImagePickerController が将来的に非推奨になり PHPickerViewController に置き換わっていくみたいです。 参考: Meet the new Photos picker


UIKitのScrollViewでページングを実装する

UIKitのScrollViewでページングを実装する方法です。 スクロールすると切り替わるタイミングでピタッと止まります。


MapViewのタップした箇所に黒丸を描画する

MapViewのタップした箇所に黒丸を描画する方法です。 タップした箇所に黒丸を描画しています。黒丸のサイズは地図に対して相対的ではなく絶対的(地図を拡大すると黒丸も大きくなる)になります。 相対的なものにしたいときはMKPointAnnotationを使うと良いかもしれません。


iOSでMKMapViewの上に図形を描画する

iOSのMKMapViewの上に図形を描画する方法です。 MKPolygon を使うことで任意の多角形を描画することができます。


SwiftでMKMapViewに図を追加する

SwiftでMKMapViewに図を追加する方法です。 以下の例では大阪、松本、東京を結ぶ三角形を追加しています。


SwiftでMKMapViewに線を引く

SwiftでMKMapViewに線を引く方法です。 以下の例では大阪、松本、東京で線を引いています。


TableViewのセルを長押しでContextMenuを表示する

TableViewのセルを長押しでContextMenuを表示する方法です。 手軽にメニューが表示することができ、とても使い勝手が良いので積極的に使っていきたいです。


ImageViewを長押しするとContextMenuを表示する

ImageViewを長押しするとUIMenuを表示する方法です。 アイコンが表示されているImageViewを長押しするとContextMenuが表示されます。 少しのコードを書くだけでリッチなUIが実現できて便利です。


UIStepperを使って値を増減させる

UIStepperを使って値を増減させる方法です。 UIStepperを使うと値を増減させるUIを簡単に実装することができます。


TableViewでセルのロングタップを検出する

TableViewでセルのロングタップを検出する方法です。 通常のタップとロングタップをそれぞれのイベントとして取得することができます。


UIAlertControllerの中でTextFieldを使い、文字数を制限する

UIAlertControllerの中でTextFieldを使い、文字数を制限する方法です。 このサンプルでは6文字以上入力できないようにしています。


UIAlertControllerの中でTextFieldを使う

UIAlertControllerの中でTextFieldを使う方法です。 Alertの中でテキストを入力できます。


UIViewに影をつける

UIViewに影をつける方法です。 オレンジ色のUIView の周りに影をつけています。 影があると浮き上がって見えるの不思議ですね。


画面内にPageViewControllerがあるウォークスルー画面を実装する

画面内にPageViewControllerがあるウォークスルー画面を実装する方法です。 一番最後のページを開くとボタンの色が変わります。


UIPageViewControllerでウォークスルー画面を実装する

UIPageViewControllerでウォークスルー画面を実装する方法です。 ウォークスルー画面はチュートリアルなどでよくありますね。


UIAlertControllerでアラートを表示する

UIAlertControllerを使ってアラートを出すサンプルです。 UIAlertControllerStyle.alert を UIAlertControllerStyle.actionSheet にするとニュッと下から出るタイプのアラートになります。


UIGestureRecognizer でジェスチャーイベントを取得する

UIGestureRecognizer でジェスチャーイベントを取得する方法です。 UITapGestureRecognizer, UIPinchGestureRecognizer, UILongPressGestureRecognizer, UISwipeGestureRecognizer などを使ってスワイプ、ピンチなどのイベントを取得することができます。


UIPickerViewを使って値を選択する

UIPickerViewを使って値を取得するサンプルコードです。 PIPickerViewは選択肢の中から要素を選ぶときによく使いますね。 今回は食べ物とドリンクとフードを選ぶアプリを作ってみました。


削除、セルの移動が可能なUITableViewを作る

削除、セルの移動が可能なUITableViewを作る方法です。 TableViewを使うと簡単に編集可能なTableViewを作ることができます。


UserDefaults に配列を保存してTableViewに表示する

UserDefaults に配列を保存してTableViewに表示する方法です。 FirstViewController のボタンを押すと UserDefaults に現在の時刻が文字列として保存されます。 SecondViewController を表示すると UserDefaults のデータが読み込まれ、テーブルに表示されます。


UINavigationBar, UITabBar の色を変える

iOSでUINavigationBar, UITabBar の色を変える方法です。 エヴァンゲリオンをイメージしたカラーリングです。今度のエヴァの映画が楽しみです。


UITabBarControllerにUINavigationControllerを入れ子で実装する

UITabBarControllerにUINavigationControllerを入れ子で実装する方法です。 ついでに色もカラフルにしてみました。


UIActivityViewControllerでText, JSON, PDFを共有する

UIActivityViewControllerでText, JSON, PDFを共有する方法です。 簡単にファイルが共有できて実装が簡単なので重宝しています。 画像、PDFなどは Data を渡しても認識しますが、JSON などは Data を渡しても認識しないので、ファイルパスを指定しています。


UIViewの背景をグリッドにしたり、ドットにしたりする

UIView の背景をグリッドにしたり、ドットにしたりする方法です。 今回は GridView という UIView のサブクラスを作り、ボタンを押すことでドットが切り替わるようにしました。


TableViewのセルの高さを変更する(Swift5.0.1)

TableView のセルの高さを変更する方法です。 一括で帰るときは .rowHeight を使い、個別に変えたいときは heightForRowAt を使うと実現できました。 サンプルコードはこちら。 https://github.com/takoikatakotako/swiswiswift-ios


UIButton、ボタンを表示する(Swift5.0)

UIButton を使ってボタンを表示するサンプルコードです。 角丸ボタンはよく使います。


UISlider で値を取得する(Swift5.0)

UISlider で値を取得するサンプルコードです。 最小値と最大値を設定することで、その間の任意の値を取ることができます。


RootViewController をアニメーション付きで切り替える(Swift4.2)

RootViewController をアニメーション付きで切り替えるサンプルコードです。 チュートリアルの後とかでの使用を想定しています。


UITableViewでテーブルにアイテムを表示(Swift4.2)

UITableViewはリストのような形でテキストを表示するクラスです。データ一覧などを表示する時などに役立ちます。 UITableViewのクラス階層 NSObject ↑ UIResponder ↑ UIView ↑ UIScrollView ↑ UITableView AppleDeveloperリファレンスUITableView


NavigationControllerで画面遷移を行う(Swift4.2)

#Swift4.2 NavigationContorollerのサンプルコードです。 NavigationContorollerは横にニュッと動いて画面遷移をします。


NavigationControllerのRootを切り替える(Swift4.2)

`# Swift4.2` `setViewControllers`でNavigationControllerのRootを切り替えています。


ImagePickerControllerで画像を選択する(Swift4.2)

# Swift 4.2 Swift3の記事はこちら UIImagePickerControllerで画像の選択 iPhoneのフォトライブラリから画像を取得するサンプルプログラムです。 フォトライブラリから画像を選択するために、プロジェクトの info.plistにフォトライブラリを使用する旨を記述します。 これを書いておかないとUIImagePickerControllerは使えません。 キーの値は以下の値を使います。 NSPhotoLibraryUsageDescription TypeはStringでValueの中に使用理由を書きます。 使用理由を書かないと審査の時に落とされるらしいです。


UITableViewの中身をUISearchBarで検索する(Swift4)

#Swift4.2 UITableViewとUISearchBarを組み合わせたサンプルです。 ナビゲーションバーにある虫眼鏡を押すとSearchBarが現れ、そこに文字を入力することで検索結果が表示されます。 Swift3 での記事はこちら


グループスタイルのTableViewを作成する

グループスタイルのテーブルビューを表示するサンプルコードです 設定画面などはこんな感じですね。


SafeAreaを取得する

iPhoneXが登場したことで、iPhoneXのレイアウト(SafeAreaの取得)には気を使うようになりました。 SafeAreaはviewDidLayoutSubviews メソッド内で、safeAreaInsets プロパティを参照することで取得することができます。


CollectionViewにSearchBarをつけて検索する

コレクションビューにサーチバーとコレクションビューをつけて検索するサンプルです。


PageViewControllerとPageControl

チュートリアル画面や電子書籍リーダーによく使われるPageViewControllerの実装サンプルです。


UITabBarControllerにUINavigationControllerを入れ子で実装する

UITabBarControllerにUINavigationControllerを入れるコードです。 UITabBarControllerにUINavigationBarControllerを入れて実装しています。 新しい記事があります。 UITabBarControllerにUINavigationControllerを入れ子で実装する


UITabBarControllerを実装する

Viewの切り替えに使われるUITabBarControllerを実装サンプルです。 UITabBarControllerのアイコンは30×30の透過pngです。


UIViewの背景をグラデーションさせる

UIViewの背景をグラデーションさせるサンプルコードです。 参考にさせていただいたページ 【Swift x iOSアプリ開発】Viewの背景色にグラデーションを設定する方法 Swift UIViewの背景をグラデーションさせる方法 -iPhoneアプリ開発-


TableViewを編集してCellを削除する(横スライド)

TableViewを編集してCellを削除するサンプルコードです。 以下の関数を追加することで、セルを横スライドで削除できる機能を付けることができます。 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)


TableViewを編集してCellを削除する

TableViewを編集してCellを削除するサンプルコードです。 NavigationBarに編集ボタンを追加し、そのボタンを押すことでセルを削除することができます。 NavigationControllerについてはこの記事を参考にしてください。 NavigationControllerを実装する


CustomTableViewCellとaccessoryViewを使ってTableVIewのレイアウトをカスタマイズ

CustomTableViewCellを作ると好きなレイアウトのCellをTableViewで使うことができます。 そしてTableViewCellのアクセサリービューにはUISwitchやチェックマークなどのアクセサリをつけることができます。 今回はその両方を使ったサンプルコードです。 参考にさせて頂いたウェブサイト [Swift]UITableViewCellのaccessoryViewでaccessoryButtonTappedForRowWithIndexPathが来ない件の対応


UIAlertControllerにTextFieldを追加する

UIAlertControllerにTextFieldを追加したサンプルです。


NavigationControllerを実装する

NavigationContorollerのサンプルコードです。 NavigationContorollerは横にニュッと動いて画面遷移をします。


UIAlertControllerでアラートを表示する

UIAlertControllerを使ってアラートを出すサンプルです。 UIAlertControllerStyle.alert をUIAlertControllerStyle.actionSheet にするとニュッと下から出るタイプのアラートになります。


UIAlertControllerで下からニュッと出す(UIActionSheet)

下からニュッと出てくるアラートはUIAlertControllerを用いて実装します。 遥か昔、下からニュッと出てくるアラートはUIActionSheetなんて呼ばれている時期もありましたが、UIAlertControllerに統合されました。


UIPickerViewを使って値を選択する

はいどーも! UIPickerViewを使って値を取得するサンプルコードです。 PIPickerViewは選択肢の中から要素を選ぶときによく使いますね。 今回は食べ物とドリンクとフードを選ぶアプリを作ってみました。 新しい記事は こちら AppleDeveloperDocuments UIPickerView


UIScrollViewで画像をピンチで拡大したり縮小する

UIScrollViewの中にある画像を拡大したり縮小するサンプルです。 ピンチで画像を大きくしたり、小さくします。


UITableViewにヘッダーを設定する

UITableViewにヘッダーを設定するサンプルです。 フッターも同様に設定することができます。


UICollectionViewにCustomセルを追加する

UICollectionViewにCustumCollectionセルを追加してみました。 クラス名を文字列に変換する NSStringFromClass(CustumCollectionViewCell.self) は、UITableViewやUICollectionView を使うときにとても便利です。


UICollectionView

新しい記事 があります。 UICollectionViewのサンプルです。 UICollectionViewを使う を参考にさせていただきました。 このサイトは見やすくて、swiftをやる人にとてもオススメです。 makeColor() 関数でランダムに生成した色をセルに入れています。 スクロールするたびに色が変わります。


UIImagePickerControllerで画像の選択

iPhoneのフォトライブラリから画像を取得するサンプルプログラムです。 フォトライブラリから画像を選択するために、プロジェクトの info.plist にフォトライブラリを使用する旨を記述します。 これを書いておかないとUIImagePickerControllerは使えません。 キーの値は以下の値を使います。 NSPhotoLibraryUsageDescription Typeは String でValueの中に使用理由を書きます。 使用理由を書かないと審査の時に落とされるらしいです。 下の画像のような感じです。 コードは以下のようになります。


UITableViewとUISearchBar

UITableViewとUISearchBarを組み合わせたサンプルです。 ナビゲーションバーにある虫眼鏡を押すとSearchBarが現れ、そこに文字を入力することで検索結果が表示されます。 UITableView 基本的なテーブルビューの例文を以下に示します。


UITextField

UITextFieldは文字の入力に使われます。 UITextFieldのクラス階層 NSObject ↑ UIResponder ↑ UIView ↑ UIControl ↑ UITextField AppleDeveloperリファレンスUITextField UITextField例文 UITextField、生成し、ボタンが押されるとUITextFieldから文字列を取り出してラベルにコピーします。


UINavigationBar

iOSアプリの画面上部によく使われているUINavigationBarについてです。 UINavigationBarのクラス階層 NSObject ↑ UIResponder ↑ UIView ↑ UINavigationBar AppleDeveloperリファレンスUINavigationBar UINavigationBar例文 UINavigationBarを生成し、タイトルとボタンを付けます。


UILabel

UILabelクラスは文字表示を管理するクラスです。画面に文字を表示させたい時に使用します。 UILabelのクラス階層 NSObject ↑ UIResponder ↑ UIView ↑ UILabel AppleDeveloperリファレンス UILabel UILabelサンプル サンプルコード


UITableView

UITableViewはリストのような形でテキストを表示するクラスです。データ一覧などを表示する時などに役立ちます。 UITableViewのクラス階層 NSObject ↑ UIResponder ↑ UIView ↑ UIScrollView ↑ UITableView AppleDeveloperリファレンスUITableView UITableView


UIButton

UIButtonクラスはボタンを設置するためのクラスです。 ボタンタップでアクションを起こすことができます。 UIButtonのクラス階層 NSObject ↑ UIResponder ↑ UIView ↑ UIControl ↑ UIButton AppleDeveloperリファレンスUIButton UIButton例文 様々なUIButtonのサンプルです


UIBarButtonItem

UINavigationBarの要素追加、カスタマイズに用いられるUIBarButtonItemについてです。 UIBarButtonItemのクラス階層 NSObject ↑ UIBarItem ↑ UIBarButtonItem AppleDeveloperリファレンスUIBarButtonItem UIBarButtonItem例文 UINavigationBarを生成し、タイトルとボタンを付けます。