ビギグラマーのノート

自作PCやプログラミングについてのブログです。

Swift

【Swift】Frameworkをテスト環境と共に構築する

環境 Frameworkの作成 追記 1 追記 2 Frameworkの組込 環境 Xcode: 11.2 Swift: 5 Frameworkの作成 まずはじめにFrameworkとそのテスト環境を作成します。最初に作るのはFrameworkです。Single View Appから作り始めると後に追記するScriptの関係から多少め…

【Swift】ScrollView 内にImageViewがある時zoomの変更に注意を!

はじめに やりたいこと 問題点 解法 正解のコード はじめに ScrollViewはiOSの設計の中でもかなり重要なファクターを担っており、これをせいするものがSwiftを制すとも言われます。私が言っているだけですが... ScrollViewにImageViewを入れて画像を表示した…

NavigationBarとStatusBarの隙間を埋める

はじめに 方法 参照 はじめに NavigationBarを手動で追加した場合StatusBarの色が違います。文字にすると表現しずらいため画像で表すと。 こんな感じになっているところを次のようにしたいと思います。 方法 UIBarPositionDelegateを追加してNavigation Bar …

【Swift 4】NSAttributedString ⇆ HTML の変換とUITextViewへの表示

やりたいこと How to do HTML → NSAttributedString NSAttributedString → HTML 愚痴 参考 追記 2018/05/13 参考 -2 追記 2018/06/12 追記 2018/08/10 やりたいこと NSAttributedStringとUITextViewを使えばリッチなテキスト表現ができることはご存知かと思…

【Xcode 9.2】PlaygroundでLibraryを使う

Xcode 9.4.1 現在この方法ではLibraryを追加できません。 Playground Single View使ってますか? How to 問題点 追記 参考 追記 -2018/06/29- Playground Single View使ってますか? 最近(それほど最近でもないけど)XcodeのPlaygroundにSingle Viewモード…

【Swift3】吹き出しを作る

制作意図 コード 解説 制作意図 アプリケーションの初回起動などで吹き出しを使って機能を説明したい時があります。しかしデフォルトの吹き出し等が用意されていないので、今回balloonViewというカスタムビューを作成しました コード BalloonView.swift with…

【Swift3】<Error>: CGContextClosePath: no current point.

No Current Point 目次作るほどでもないSolution 円を描写する時 No Current Point SwiftでCoreGraphicsを触っている時にこのような実行時エラーに遭遇しました。 一見問題なく描写が済んでいるものの「現在のポイントではない」という誠に不親切なことが書…

【Swift】PageBased ApplicationにPage Controlを表示する

導入 下準備 PageControl追加 タップでページ移動 導入 Xcodeにはいくつかの雛形が用意されておりその中にPage-based Applicationがあります。Page-based ApplicationはiOSのホーム画面のように横スクロールでいくつかのページを表示する場合や、Bookアプリ…

【Swift3】WKwebViewでWebページのアイコンを自動取得

作成意図 ダウンロード 使い方 ライセンス 問題点 改造等 作成意図 Webページにはappleデバイス用のアイコンが設定されている場合があり、これが主にブックマークを使用する際のアイコン画像となります。現在このアイコンを取得する機能はWKWebViewに実装さ…

【Swift3】TableViewで簡単な設定画面を作る

iPhoneの純正の設定画面はTableViewを使用して作られています。そしてこれと同じようなものをアプリケーション内でTableViewを駆使して作ることができます。最終的な完成図はこのようになります。 空のViewControllerを用意し、TableViewとCellを貼り付けDel…

【Swift3】WKWebViewの使い方とロード後に呼び出されるメソッド

iOS8.0からWKWebViewが追加され、現在よりセキュアで安定したWKWebViewの使用をAppleは推奨しています。WKWebViewはStoryBoard上でまだ扱えないのでコードを書いていく必要があります。 WKNavigationDelegateはwebViewが活動中に色々といじれる便利なプロト…

TabBarの使い方

環境 Swift 3, app for iOS10 様々なアプリケーションで使用されるTabBarについて書いていきます。TabBarは例えばApple純正の時計アプリとかを想像してもらうとわかりやすいかもしれません。 TabBarとはこのように下にいくつかのタブが並び画面を簡単に移動…

【Swift】キーボードの使い方あれこれ

Swift3でiOSのキーボードを使う際に色々とセッティングできるのでまとめておきます。 -キーボードのreturn(改行)ボタンを押した際に実行されるメソッド StoryBoardを使わずに直接コードを入力することもできますが、簡単なので今回はStoryBoardを使います。 …

ContainerViewとSegue

環境 Xcode 8.2.1 Swift 3.0.2 Segueで値を受け渡しするときに受け渡し先にContainerViewが存在し、そのClass内でSegueで渡す値を使用する場合ContainerViewの読み込まれる順番を考慮しないといけません。 読み込まれる順番としては Segueのタイミング Conta…

コードで画面遷移 -マニュアルSegue-

環境 Swift 3.0.2 xcode 8.2.1 ちょっと引っかかったのでボタンなどで画面遷移ではなく、好きなタイミングで画面遷移する方法を書いておきます。 "autoSegue"は実行したいSegueのidentifier コメントでも書いた通り、viewDidLoad内でpreformSegueを実行する…

アラートメッセージを作成

環境 Swift 3.0.2 xCode 8.2.1 C#などでは結構簡単にメッセージが書けましたが、Swiftでは結構量を書かなければなりません。 まずメッセージボックス内にテキストフィールドがないタイプ。 次はテキストフィールドが付いているバージョン NOを選択したのにテ…

CSVファイルの読み込みと変換

環境 Swift 3.0.2 xCode 8.2.1 今回やることは Documents内のファイルのパスを作成 そのパスからファイルの存在を確認 String型でCVSファイルを取得 indexで各文字をCharacter型で取得 カンマやダブルクォートなら仕様通りに前後を確認し編集 indexで文字を…

Documents下に多次元配列からCSVファイルを作る

環境 swift 3.0.2 xCode 8.2.1 対象 iOS10.2 二次元配列からcsvファイルを作成するコードです。場所はDocuments下になるので主にユーザーが編集できる場所になります。 仕組みとしては ファイルを保存するパスを作成 二次元配列のfileArrDataをcsv用に「,」…

TableViewの画面遷移と値渡し

iOS 10.1 Xcode 8.0 Swift 3.0.2 一つ目のViewControllerにTableViewを作成し終わっていることを前提として説明し始めます。まだな人はここを参考にするといいかもしれません。ここではTableViewのCellを選択した際に画面遷移させる方法と、また同時に選択さ…

Table View の使い方

環境 iOS 10.1 Xcode 8.0 Swift 3.0.2 前回Table View Controllerの使い方を説明しましたが、実はあれには重大な欠点があります。それは実行した際にステータスバーにかぶることです。この原因は本来ならViewが土台にあってそこにペタペタ貼り付けていくので…

Table View Controllerの追加と使いかた

iOS 10.1 Xcode 8.0 Swift 3.0.2 Table View ControllerをSingle View Applicationを選択して作ったStoryboardに追加し実際に使う方法を残しておきます。 まずLibrary paneからTable View ControllerをStoryboradにD&Dしてきます。ここにデフォルトのスター…

Tap Gesture Recognizer

環境 iOS 10.1 Xcode 8.0 Swift 3.0.2 デバイス画面をタップした際のactionを決定する。 いわばシーンの一部と同じように扱われる。 Sent ActionsをViewController.swiftに引っ張ってくることで使用可能。 例えば一回タップして表示を変え、もう一回タップし…

loadRequestでwebにアクセスできない

環境 iOS 10.1 Xcode 8.0 Swift 3.0.2 ios9以上ではUIWebViewを使用してインターネット閲覧機能をAppに実装するとき、loadRequestをしてHTTPウェブサイトにアクセスできません。その場合info.plistを書き換えて一時的にHTTPにアクセスすることを許可しないと…