swift

swift codableのデバッグ

型や項目の必須、任意が正しくないと1件もヒットしなくなってしまうのでエラー時のデバックプリントはたぶん必須Swift let data = """ [{ "id": 1, "name": "USER1", },{ "id": 2, "namexxx": "USER2", }] """.data(using: .utf8)! struct User: Codable { v…

ios WKWebViewでWebViewアプリの作り方まとめとく

iOSで簡単なWebViewアプリの作るときに必要そうなことまとめておく。以下のiOS版 android WebViewアプリの作り方まとめとく - とりあえずphpとか WKWebViewを作ってサイトを表示する ViewController import UIKit import WebKit class ViewController: UIVie…

swift4 クラス(インスタンス)の配列を特定のプロパティでソート

大した話じゃないけどサンプル let user1 = User(id: 1, date: "2010-02-01") let user2 = User(id: 2, date: "2015-02-01") let user3 = User(id: 3, date: "2020-02-01") // 特定のカラムで並び替える var users = [user1, user2, user3] users.sort(by: {…

swift4 AlamofireとImageViewでURLから取得した画像を拡大表示

http://kimagureneet.hatenablog.com/entry/2019/02/27/025807 ここでやったのとほとんど同じ。ちがいは以下だけ ・URLからの画像を表示 ・キャッシュとか考えるとAlamofireImage使う import UIKit import AlamofireImage import ImageViewer class ViewCont…

swift4 ImageViewerで画像を拡大表示

今回やりたい画面はこんな感じ 画像をタップしたら拡大するよくあるやつちょっとわかりずらいけど タップしたら → 拡大 https://github.com/Krisiacik/ImageViewer このライブラリ使ったサンプルコードがちょっとわかりずらかったので、シンプルなサンプルコ…

swift 普通のアプリを作るのにつかったライブラリまとめ

はじめに 普通のアプリってなんだと突っ込まれそうだけど...・APIへリクエストしたり ・リスト表示したり ・画像を表示したり ・入力フォーム作ったりアプリ開発してると自分のスキルだとやはりサードパーティのライブラリに頼りまくることになる。できるだ…

swift4 アプリのバージョン番号とビルド番号取得

// バージョン番号 Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") // ビルド番号 Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")参考 https://qiita.com/arthur87/items/802d17387ae46fb44fc2

rails actioncable + swiftでwebsocketのhello world

iOSでWebSocketを少し試す必要があったのでそのときの手順をまとめておく。サーバー側はRails5.2のAPIモードでActionCableを使う。railsインストール $ bundle exec rails new ac_test --api Channel作成 channel作成 $ ./bin/rails g chnnel chatChannelは…

xcode カスタムURLスキームを本番と開発アプリで切替える

今回やりたかったことはカスタムURLスキームの設定。ブラウザから「myapp://」等のリンクをクリックしたときにアプリを起動させたいとかの場合に設定するものです。 アプリ開発していて、開発と本番アプリで別の名前で設定したいと思いやり方を調べたのでメ…

migrate swift4.0 to swift4.2

swift4.0 から swift4.2 への修正内容メモしておく UIKeyboardWillShow UIResponder.keyboardWillShowNotification UIKeyboardWillHide UIResponder.keyboardWillHideNotification UIControlEvents UIControl.Event UIEdgeInsetsInsetRect(rect, padding) re…

Swift LUExpandableTableViewを使って折りたたみ可能なUITableViewを実装

こんな感じのありがちなUI。ライブラリを使わずに自前で実装する方法もけっこう書いていただいている人がいて実装することはできたのだが、テーブルのレコード数が増えると開閉したときのスクロール位置がガタガタ。自分の実装方法に問題があるかもしれない…

Swift 一定以上スクロールしたらタブの位置を固定する(SwipeMenuViewControllerを使う)

やりたいことはこちらのページに書かれていたようなこと https://techblog.zozo.com/entry/scroll_tab_pagehttps://github.com/yysskk/SwipeMenuViewController SwipeMenuViewControllerというライブラリを使って試してみたViewController.swift import UIKi…

Swift UIViewを再描画

autolayout使わない方法メモ と言ってもframeをセットしなおしてるだけ import UIKit class ViewController: UIViewController { var wrapper: Wrapper! class Wrapper: UIView { var message = UILabel() required init?(coder aDecoder: NSCoder) { super.…

Swift UITableViewのセクションヘッダーをカスタマイズする方法メモ

やることは以下 ・カスタムUIViewの実装 ・viewForHeaderInSectionとheightForHeaderInSectionメソッドの定義viewForHeaderInSectionはカスタムViewを返す heightForHeaderInSectionはカスタムViewの高さを返す テーブルセルのカスタマイズと考え方は同じ カ…

Swift4.2 UITableViewひな型

コピペ用AppDelegate.swift class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var navigationController: UINavigationController? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOp…

Swift 動画からキャプチャ画像を抽出する

動画ファイルから1秒単位でキャプチャ画像を生成するサンプルをメモしておく import UIKit import AVKit class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { var picker = UIImagePickerControlle…

Swift Dateで日付のみのリスト作成

大した話じゃないけどDateFormatterは入力と出力でそれぞれ用意すると考えるとなんとなくわかりやすいと思った start = "2018-01-01" end = "2018-01-31" // 入力文字列のフォーマット var inputFormatter = DateFormatter() inputFormatter.dateFormat = "y…

Swift Alamofire + Codableでapiリクエストでの最低限必要そうな処理まとめ

はじめに アプリ開発でWebAPIにリクエストしてレスポンスを画面に表示したりデータを更新したりありがちな処理をまとめておく。やりたいことは主に以下 ・APIへリクエスト(Get、Post、Patch、Delete) ・APIのレスポンスからCodableなクラスのインスタンス…

Swift UITextField textFieldShouldReturnが呼ばれない

UITextFieldDelegateもちゃんと実装したのになぜか呼ばれなくてハマった誤 func textFieldShouldReturn(textField: UITextField) -> Bool { return true }正 func textFieldShouldReturn(_ textField: UITextField) -> Bool { return true }昔のソース貼り付…

Swift TagListViewでタグ入力UI実装

はじめに 今回作りたかったのはこんなありがちなUIhttps://github.com/ElaWorkshop/TagListView このライブラリを使ったら簡単に実装できた。使い方簡単にメモしておくハマりポイントはあまりなかったが、タグを追加していったときに高さの取得方法がわから…

Swift Carthage 使い方メモ

carthage自体のインストールは済んでる前提で、その後のライブラリインストール手順についてメモしておく。手順はざっくり以下 1. CartfileにレポジトリURL追加 2. carthage update コマンドでライブラリインストール 3. xcodeからライブラリ追加 4. Run Scr…

Swift codableなclass(object)のプロパティに変数で動的にアクセスする

あまり応用シーンはなさそうだけど今回やりたかったことは user["id"]、user["name"]みたいなかんじでプロパティにアクセスしたかった。やりたかった理由はObjectから特定のプロパティを表示する画面を作りたかった。こんなクラスがあってプロパティがたくさ…

Swift LINEぽいメッセージアプリの入力UIをつくったのでメモ

はじめに かなり前にこちらでメッセージを表示する部分の吹き出しの作り方をメモした。 http://kimagureneet.hatenablog.com/entry/2015/09/19/005407今回はメッセージ入力部分のUIの作り込みの方法をメモ。こんな感じのものを作りたかった。 やりたいことは…

Swift ImageSlideshowのPagerの色、位置を変更する

https://github.com/zvonicek/ImageSlideshow こちらのライブラリの話デフォルトだと画像とページャーガ重なっていて見づらいので、色を変えて画像の下にくるようにする var slideShow = ImageSlideshow() let pager = UIPageControl() pager.pageIndicatorT…

Swift UITableViewですぐ忘れる細かいことまとめておく

セルの罫線を消す tableView.separatorStyle = .noneセルの罫線の隙間をなくす UITableView.appearance().separatorInset = UIEdgeInsets.zero空のセルは表示しない tableView.tableFooterView = UIView(frame: .zero)セルをタップした時の色がかわらないよ…

【xcode】プロジェクト名を変更するのが思ったより面倒だったので手順まとめておく

はじめに アプリ名とかを仮のまま開発を進めて途中でアプリ名が決定。 プロジェクト名などが旧名称のままだと気持ち悪いのでプロジェクト名を変更したかったのでその時の手順をまとめておきます。今回は以下の名前をで変更します。 変更前:SampleOld 変更後:…

【swift】UILabelの高さを計算して動的に変更(調整)する

よくやってるつもりだったけど意外と整理できていなかったので整理 var myLabel = UILabel(); // 最大行数を指定(0は無制限) myLabel.numberOfLines = 0; // 表示するテキストをセット myLabel.text = "テキスト・・・"; // セットした文字からUILabelの幅と…

【swift】iosで画面の回転を検知してUITableViewを再描画する

はじめに 今回やりたかったのは画面一杯にUITableViewをセット。 端末の向きが変更されたら画面サイズに合わせてUITableViewの幅と高さを更新。ということなにも対応しないと縦向きから横向きにしたときにテーブルの幅が半分くらいになってしまうので対応が…

【swift】SWTableViewCellでボタンとテキストが重なったときの対応メモ

テーブルビューのセルをスワイプしたら削除ボタンが出てくるメールアプリみたいなUI。 これを簡単に実現できるライブラリでSWTableViewCellというのがあった。で、使い方自体はわかりやすくて簡単だったんだけどUITableViewCellの中身がスライドしないで 削…

【swift】uiscrollviewを更新する方法メモ

はじめに 今回やりたかったことは以下 ・UIScrollViewの中にUILabelをもつ ・UILabelのテキストにはAPIから取得した値をセットする ・テキストの文字数が多いのでUIScrollViewの高さをセットしてテキスト全体がみれるようにする今まではUITableViewのヘッダ…