Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

Swift

【SwiftUI】@Bindingの使い方

■Bindingとは "A property wrapper type that can read and write a value owned by a source of truth." ※引用:Apple Developer Documentation 「信頼できる情報源が所有する値の読み取りと書き込みが可能なプロパティラッパータイプ」です。 ・・・? ■サ…

【SwiftUI】@Stateはどのような時に使うのか説明してみた

■@Stateとは "A property wrapper type that can read and write a value managed by SwiftUI." ※引用:Apple Developer Documentation 「SwiftUIによって管理される値を読み書きできるプロパティラッパータイプ」とのことです。 正直、上記ページを読んでも…

【Swift】SwiftLintをCocoaPodsを使って導入する

■開発環境 ・Xcode 11.5 ・Swift 5.2.4 ・SwiftLint 0.40.3 ■手順 1.SwiftLintをインストール pod 'SwiftLint' 2.Run Scriptに以下を追加 追加後ビルドすると、Xcodeにルールに反した実装箇所に警告やエラーが表示されます。 if which "${PODS_ROOT}/SwiftLi…

【Swift】ページネーションを実装する(UICollectionView/API)

【Swift】UICollectionView/APIから画像URLを取得して画像を表示(https://www.hfoasi8fje3.work/entry/2019/08/22/224038)でAPIから画像取得後UICollectionViewに表示する実装についてまとめました。 今回は上記記事の続きとして、ページネーションを実装…

【Swift】UICollectionView/APIから画像URLを取得して画像を表示

APIから画像URLを取得して画像をダウンロードし、UICollectionViewに表示するサンプルを実装してみました。 ※APIはPixabay APIを使用しています。 https://pixabay.com/ja/ ※2019/11 追記 以下記事でページネーションを実装しました。 www.hfoasi8fje3.work …

【Swift】横スクロールするページをStoryboardで実装する

コードで実装する横スクロールについては、以前に下記記事で取り上げました。 今回はStoryboardで横スクロールを実装する方法について教えていただいたので、備忘も兼ねて記事に残します。 ・【Swift】横スクロールするページを実装する(UIScrollView/UIPage…

【Swift】APIからGETでデータを取得/CodableでJSONをデコード

過去に以下の記事で、AlamofireとSwiftyJSONを使った例、SwiftyJSONを使わずにCodableでパースする例を扱いましたが、今回はAlamofireとSwiftyJSON使わない例となります。 https://www.hfoasi8fje3.work/entry/2018/06/03/201000 https://www.hfoasi8fje3.wo…

【Swift】URLSessionでメモリが解放されない原因と対処法

■開発環境 ・Xcode 10.2.1 ・Swift 5.0.1 ■現象 タブAに以下のようにURLSessionを使って画像URLをUIButtonに表示する処理を書いたのですが、その後「タブBを選択」→「タブAを選択して再度画像を表示」を繰り返すと、メモリが微増していくではありませんか・…

【Swift】UICollectionView/xibファイルでカスタムセルを作成

以前、UICollectionViewをコードのみで実装する方法を以下の記事で取り上げました。 https://www.hfoasi8fje3.work/entry/2019/02/14/000000 今回は、上記の記事の実装をもとに、カスタムセルをxibで作成し適用する方法を試してみます。 ■開発環境 ・Xcode 1…

【Swift】UIImageView/どの画面サイズでも画像の縦横比を保ったまま全領域を表示させたい(バナー画像のレイアウト)

「どの画面サイズでもバナー画像が切れることなく、縦横比も保ったままレイアウトする方法ってどうすれば良いんだっけ?」とレイアウトわかってない感満載な現象が起こったので、記事に残しておきます。 ■開発環境 ・Xcode 10.2 ・Swift 5.0 ■やりたいこと …

【Swift】NukeでURLの画像を表示/キャッシュ

■開発環境 ・Xcode 10.2 ・Swift 5.0 ・Nuke 7.5.1 ■手順 1.Nukeをインストール pod 'Nuke' 2.StoryboardでUIImageViewを配置 3.StoryboardのImageViewをViewControllerに関連づける 4.ViewControllerに以下実装 https://www.hfoasi8fje3.work/entry/2019/03…

【Swift】KingfisherでURLの画像を表示/キャッシュ

■開発環境 ・Xcode 10.2 ・Swift 5.0 ・Kingfisher 4.10.1 ■手順 1.Kingfisherをインストール pod 'Kingfisher' 2.StoryboardでUIImageViewを配置 3.StoryboardのImageViewをViewControllerに関連づける 4.ViewControllerに以下実装 https://www.hfoasi8fje3…

【Swift】URLSessionを使ってURLの画像を取得/キャッシュ

【Swift】UIImageViewにURLの画像を表示する(2) - Swift・iOSの続きです。今回は画像の取得に加えてキャッシュに関する機能を実装してみます。 ■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■手順 1.StoryboardでUIImageViewを配置 2.StoryboardのImageViewをViewC…

【Swift】Ambiguous reference to member 'dataTask(with:completionHandler:)'の解決方法

【Swift】UIImageViewにURLの画像を表示する(2) - Swift・iOSの実装時に出たエラーとその解決方法についてメモ。ただのケアレスミスなのですが、一応記録に残します。 ■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■エラーが出た時のコード このコード一目見て普通…

【Swift】UIImageViewにURLの画像を表示する(2)

【Swift】UIImageViewにURLの画像を表示する(1) - Swift・iOSの続きです。今回はURLSessionを使ってUIImageViewにURLの画像を表示してみます。 ■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■手順 1.StoryboardでUIImageViewを配置 2.StoryboardのImageViewをViewC…

【Swift】UIImageViewにURLの画像を表示する(1)

■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■手順 1.StoryboardでUIImageViewを配置 2.StoryboardのImageViewをViewControllerに関連づける&ViewControllerに以下実装 ・ViewController.swift import UIKit class ViewController: UIViewController { @IBOutlet …

【Swift】Initialization Closureを使ってリファクタリング

【Swift】Initialization ClosureでviewDidLoadの肥大化を防ぐ - Qiitaを参考にさせていただき、過去の記事で使ったサンプルコードをリファクタリングしてみました。 ※サンプルコードは【Swift】Swift4でHMSegmentedControlを試す - Swift・iOSを使っていま…

【Swift】円グラフを描画する(Charts)

■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■サンプルのイメージ ■手順 1.Chartsをインストール pod 'Charts' 2.StoryboardでViewを配置し、Custom Classに「PieChartView」を指定 3.StoryboardのPieChartViewをViewControllerに関連づける&以下実装 ・ViewContr…

【Swift】アニメーション系のライブラリSpringを試す

■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■サンプルのイメージ ■手順 1.Springをインストール pod 'Spring', :git => 'https://github.com/MengTo/Spring.git' 2.StoryboardでUIImageViewを配置し、Custom ClassのClassをSpringImageView、ModuleをSpringに設…

【Swift】自動でスクロールするページを実装する(UIScrollView/Timer)

自動で横にスクロールするページを実装してみました。Storyboardは使わずコードのみで実装しています。 ※UIScrollViewについては以下の記事でも触れています。 ・【Swift】横スクロールするページを実装する(UIScrollView/UIPageControl) - Swift・iOS ・【S…

【Swift】UIScrollViewで無限に左右スクロールできるページを実装する

【Swift】横スクロールするページを実装する(UIScrollView/UIPageControl) - Swift・iOSの続きです。今回は表示する画像をループさせることで無限に左右スクロールできるように実装してみました。 今回もStoryboardは使わずコードのみで実装しています。 ※20…

【Swift】横スクロールするページを実装する(UIScrollView/UIPageControl)

UIScrollViewとUIPageControlを使って横スクロールするページを実装してみました。 Storyboardは使わずコードのみで実装しています。 ※2019/2 追記 UIScrollViewに関しては以下記事でも取り上げています! ・【Swift】UIScrollViewで無限に左右スクロールで…

【Swift】UICollectionViewをコードで実装する

■はじめに ヘッダーとアイコン画像、タイトルを表示するUICollectionViewをコードで実装し、サンプルを作ってみました。 ※2019/05 追記:xibファイルを使った実装については以下の記事で取り上げています。 https://www.hfoasi8fje3.work/entry/2019/05/02/23…

【Swift】Swift4でHMSegmentedControlを試す

■はじめに メルカリのiOSアプリのような横スクロールでメニューを切り替えられるライブラリである、HMSegmentedControlを試してみました。 ■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ・HMSegmentedControl 1.5.5 ■サンプルのイメージ ■実装部分 1.以下HMSegment…

【Swift】WKWebViewでHTMLを表示する

■はじめに WKWebViewでHTMLを表示してみたので記録に残します。 ■開発環境 ・Xcode 10.1 ・Swift 4.2.1 ■サンプル import UIKit import WebKit class ViewController: UIViewController { var webView: WKWebView! var loadString: String = "{ここにHTMLが…

【Swift】WKWebViewで進む/戻る/更新(リロード)機能を実装する

■はじめに スワイプで進む/戻る/更新(リロード)機能を実装してみたのでまとめます。 ■開発環境 ・Xcode 9.4.1 ・Swift 4.1.2 ■進む/戻る機能の実装 インスタンスプロパティ「allowsBackForwardNavigationGestures」で、スワイプで進む/戻る機能を有効にで…

【Swift】WKWebViewでリンク先が開けない場合の対処法(ATS/target=”_blank”)

■はじめに 【Swift】WKWebViewでhttpsのページを表示できない原因(ATS) - Swift実践ブログでは、httpsのページに遷移できない現象について取り上げましたが、今回はリンク先が開けない現象に関してまとめたいと思います。 ■開発環境 ・Xcode 9.4.1 ・Swift…

【Swift】WKWebViewでhttpsのページを表示できない原因(ATS)

■はじめに WKWebViewでhttpsのページを表示できずはまってしまった時に調べたことのまとめ。 ■開発環境 ・Xcode 9.4.1 ・Swift 4.1.2 ■ 現象 httpのページを表示するにはATSの設定が必要ですが、一部httpsのページなのに表示できないもの(画面が真っ白にな…

【Swift】UserDefaultsを使ってUITextFieldに入力したテキストを自動で保存する

■はじめに 【Swift】UserDefaultsを使ったテキストの保存と読み込み - Swift実践ブログでは、「保存」ボタンを押すことでテキストを保存しました。今回は、「保存」ボタンを使わずに、入力したテキストを自動で保存できるように変更していきたいと思います。…

【Swift】UserDefaultsを使ったテキストの保存と読み込み

■はじめに UserDefaultsを使ったテキストの保存/読み込みについて試したので記事に残します。 ■開発環境 ・Xcode 9.4.1 ・Swift 4.1.2 ■実装 (1)Main.storyboard (2)ViewController.swift import UIKit class ViewController: UIViewController, UITextField…