iOS関連のことを調べてみた2019年11月22日

iOS関連のことを調べてみた2019年11月22日

Appleにバグレポートを送った時の手順

iOS13で[CNCopyCurrentNetworkInfo()がNULLを返す時がある](https://forums.developer.apple.com/message/385189)現象が自分のところでも再現したので、Appleにバグレポートを送りました。
その時の手順まとめ。

## `sysdiagnose`でログを取得する
基本、[Bug Reporting – Profiles and Logs](https://developer.apple.com/bug-reporting/profiles-and-logs/)にある手順書通りに作業するだけ。

### プロファイルのインストール
[Bug Reporting – Profiles and Logs](https://developer.apple.com/bug-reporting/profiles-and-logs/)から、目的に応じたプロファイルを選択してiPhoneにインストールします。

今回はWi-Fi関連の障害なので、`Wi-Fi for iOS`のプロファイルをインストールしましょう。

##

元記事を表示

iPadOSにおけるUser-Agent

iPadOSが13から登場し、その影響でiPadにおけるUser-Agentの仕様が変わったことが話題になりました。
その中で、気になることがあったので検証してみました。

使ったのは[ウィルラボのUserAgent確認ツール](http://lab.risewill.co.jp/tools/web-tools/user-agent)です。

# 通常

スクリーンショット
7A266C42-E33D-40E4-BF71-31794EEE8EC9.png

`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like

元記事を表示

#12 Main.storyboardからUITableViewのdelegate先を指定する1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
`contrl`キーを押しながら`UITableView`を`Second View Controller`へドラッグ・ドロップする.

スクリーンショット 2019-11-22 午前0.10.16.png

##part2
`dataSource`と`delegate`を選択する.
ただし,1度に2つ選択できない.

スクリーンショット 2019-11-22 午前0.01.16.png#11 Xcodeで画像を貼り付ける1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
Xcodeで`Image View`と検索して,Viewに乗せる.

スクリーンショット 2019-11-21 午後11.04.44.png

##part2
必要な制約を付ける.

スクリーンショット 2019-11-21 午後11.06.09.png

##part3

元記事を表示

#10 XcodeのUIButtonの角を丸くする1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
Veiwに`UIButton`を置き,制約を付ける.

スクリーンショット 2019-11-21 午後10.26.22.png

スクリーンショット 2019-11-21 午後10.26.01.png

##part2
テキストの大きさ,テキストの色,テキスト,背景色を変更す

元記事を表示

SwiftUI 全画面でホームバーを隠す

#SwiftUIで全画面時にHomeIndicatorを隠したい

SwiftUIではUIViewControllerを直接制御しないため、HomeIndicatorを非表示にする際に、prefersHomeIndicatorAutoHiddenメソッドを設定することができません。今のところはSwiftUIのContentView上でもpreferenceに設定が無いようなので、自前のクラスを挟んで制御するようにしてみました。

##SceneDelegateの起動設定を確認
iOS13から導入されたSceneDelegateにより、プロジェクト内の構成が変わっており、内部的にはSceneDelegateクラスのscene(_ ,willConnectTo: 〜〜〜)メソッドでrootViewControllerを指定するようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59249/8cb5ccef-da0a-5842-418b-c30b7c497ad0.png)

元記事を表示

iOS13.2以降でCoreNFCが動かない!っていう現象が発生したので検証してみました。

#概要

 NFCタグのIDを読み込んでみるアプリを作っていたのですが、iOSを最新にしたら動かなくなってしまったので色々検証た結果、iPhoneXR以降(iPhoneXR、iPhoneXS、iPhone11、iPhone11 PRO、iPhone11 PRO MAX)しか動かなくなった(らしい)というのがわかりました。
 以下に詳細を記載してみたいと思います。

#発生した問題

 iOS13にてCoreNFCというライブラリ(NFCTagReaderSessionとかNFCNDEFReaderSessionとか)が使えるようになり、NFCタグからIDなどを読めるようになりました。

 iOS13.0系とか13.1系にてNFCタグを読み取って色々使ってみており、NFCタグ読めるーワーイスゴーイターノシー♪ってなってました(何)

 ところが、iOSを最新版にアップデートした途端(13.1.3から13.2.2)、「あなたの端末は対応していません!」みたいな文句を言われ、NFCの読み取りができなくなってしまいました!!(滝泣)

#なので検証してみた

手元にiPhone6S、iPhon

元記事を表示

SwiftUIでNavigationViewの背景をColorで設定したい

#困った点
swiftUIでNavigationViewの背景色を変えたいと思って
.backgroundとかでいじってみても反応してくれなくて、ボエェェってなったので解決方法を書いておきます

#解決方法
**NavigationView内でZStackを使う**
これで解決できました。

イメージとしては
ZStackを使って
・カラーレイヤー
・UIパーツレイヤー
を重ねてやればいいっぽい。

まだNavigationViewのAPIが完成していないっていうことなのか、仕様なのか?

ちなみにUIColorでは無く、Colorで色を指定しているので注意

“`swift

import SwiftUI

struct Welcome_view: View {
var body: some View {
NavigationView {
ZStack {
self.backGroundColor().edgesIgnoringSafeArea(.all)
VStack

元記事を表示

チュートリアルから一歩踏み出したSwiftUIとCombineの連携(初級編)

#はじめに
 今回は個人的にはWWDC2019の二大トピックと思っているSwiftUIとCombineの連携についてです。
 Combineに関して知識が無い方はCombine自体の説明はここではしないので、下記WWDC2019のビデオで基礎知識を得てください。また、他のSwiftUI関連ビデオでもCombineが散見されますでのご覧になってない方は是非チェックしてみてください。

– [Data Flow Through SwiftUI](https://developer.apple.com/videos/play/wwdc2019/226/)
– [Introducing Combine](https://developer.apple.com/videos/play/wwdc2019/722/)
– [Combine in Practice](https://developer.apple.com/videos/play/wwdc2019/721/)

但し注意しなければならないのは、一部名称と実装方法が当時のものから変わっています。特に下記は注意が必要です。

– `Bina

元記事を表示

【Swift】Combine.frameworkのFutureとDeferredと即時実行、遅延実行

以前投稿した内容で
Combine.frameworkの`Future`はインスタンスを生成した時点で
中のクロージャを実行させるということについて書きました。

https://qiita.com/shiz/items/f089c93bdebfaef2196f
https://developer.apple.com/documentation/combine/future

この場合
Subscribeをしていないのに処理が実行されてしまい
無駄にリソースを消費してしまう可能性や
副作用を起こして思わぬ動作をしてしまう可能性もあります。

そういう場合`Deferred`を活用する方法があります。

https://developer.apple.com/documentation/combine/deferred

`Deferred`はinitで`createPublisher`というクロージャを受け取り
中でPublisherを生成します。
このクロージャは**Subscribeした時に初めて**実行されます。

# 検証

下記のコードをPlaygroundで実行して確認し

元記事を表示

Flutter PlatformView (iOS) の作成

FlutterでiOSのPlatformView (UiKitView) を作るまでに手こずったのでメモしておく。

### 前提
– 対象とするiOSのバージョンは11.0以上
– Swift
– Xcode 10.3 (Xcode 11入れていなかった。。)
– できるだけPlatformViewにだけフォーカスしたコードにする
– View作成時にパラメータを指定して、それを表示するだけ
– Androidは追って

iOS, Swiftは初心者なので、生暖かい目が嬉しいです。

## プロジェクトの作成と設定

### 作成
https://flutter.dev/docs/development/packages-and-plugins/developing-packages を参考にプロジェクトを作る。

“`
$ flutter create –org org.yyyyyyyy –template=plugin -i swift -a kotlin my_first_view
$ cd my_first_view
$ flutter pub get
$ cd exa

元記事を表示

#9 UITableViewCellをカスタマイズする1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
`View`に`UITableView`を置き,制約を追加し,`UITableViewCell`をその上に置く.
Cellの`identifier`を設定する.

スクリーンショット 2019-11-20 午後11.01.27.png

##part2
`Table View`を選択した状態で,`Size inspector`の`Row Hight`に任意の数字を入力する.

スクリーンショット 2019-11-20 午後11.15.21.png#8 XcodeのTableViewの使い方1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
Xcodeで`TableView`と検索する.

スクリーンショット 2019-11-20 午前0.09.04.png

##part2
UITableViewを置きたいViewに乗せる.
制約を付ける.

スクリーンショット 2019-11-20 午前0.09.28.png

元記事を表示

[Flutter] iOS で WebView の Scrollbar の位置がずれる問題を修正する

# Flutter で Web ページを表示する

[webview_flutter](https://pub.dev/packages/webview_flutter) を使いますが iOS デバイスで表示すると Scrollbar の位置が変なところに出るという報告があります。

https://github.com/flutter/flutter/issues/41592

普通に WebView を表示すると、

“`
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: WebView(
initialUrl: “https://www.google.com/”,
javascriptMode: JavascriptMode.unrestricted,
)
);
}
“`

![test2.gif](https://qi

元記事を表示

???iOS開発で誰も教えてくれなかったけど当たり前にやっているSwiftの書き方???

「誰も教えてくれなかった」ってタイトルですが、僕iOS開発に関しては独学でしかやってないので、よく考えたら誰にも教わってないですね???
まあなんか、本読んでもあんまり明示的には書いてないけど、「皆当たり前にやってるやん!」と思ったことを書いていきます。
(どこかに書いてあるのを見落としただけかもしれませんが)

# delegateで要求されているprotocolはextensionで書く
ルールではないですが、慣習的にextensionで各protocolごとに分離して書いた方がきれいです。

“`swift
extension SampleMapViewController: MKMapViewDelegate {

func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
//do something
}
“`

# プロパティの型をOptionalにするとイニシャルしなくてよい
Swiftの制約として、クラスに紐づくプロパティは全部イニシャライザで初期

元記事を表示

#7 Main.storyboardのViewのアイテムをコードと接続する1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
Xcodeの右上の赤枠をクリックする.

スクリーンショット 2019-11-20 午前0.37.51.png

##part2
画面が分割するので,分割した画面の表示するfileを選択する.

スクリーンショット 2019-11-20 午前0.39.23.png

##

元記事を表示

#6 新規のUIViewControllerのクラスを作る1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
ナビゲータバーで右クリックし,`New file`を選択する.

スクリーンショット 2019-11-20 午前0.17.49.png

##part2
`Cocoa Touch Class`を選択する.

スクリーンショット 2019-11-20 午前0.18.03.png

元記事を表示

#5 iOSアプリのLabelの編集1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
編集したいLabelを選択する.

スクリーンショット 2019-11-19 午後11.37.41.png

##part2
`Attributes inspector`からtextや色,大きさを変更する.

スクリーンショット 2019-11-19 午後11.09.03.png#4 iOSアプリでの画面遷移の1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
`UIViewController`と検索する.

スクリーンショット 2019-11-19 午後10.56.48.png

##part2
`UIViewController`を`Main.storyboard`に追加する.

スクリーンショット 2019-11-19 午後10.57.12.png#3 ViewControllerにNavigationControllerをつける1例

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
`NavigationController`を付けたい`ViewController`を選択する.

スクリーンショット 2019-11-19 午後10.47.09.png

##part2
Xcodeのツールバーから`NavigationController`を選択する.

スクリーンショット 2019-11-19 午後10.47.58.png

  • OTHERカテゴリの最新記事