iOS関連のことを調べてみた2022年07月10日

iOS関連のことを調べてみた2022年07月10日

Swift StoryBoardからUIViewやUIButtonの枠線の太さ、色の設定を行う

StoryBoardからUIViewやUIButtonの枠線の設定を行う事が増えたのでメモ

# 角丸にする
任意の部品のUser Defined Runtime Attributesに直接書く
今回はUIButton
“`
Key Path:cornerRadius
Type:Number
Value:5
“`
これだけ。
**UIView、imageViewなどはclipsToBoundsにチェックを入れないと反映さえないので注意!!!!**

# 枠線をつける
任意の部品のUser Defined Runtime Attributesに直接書く
“`
Key Path:layer.borderWidth
Type:Number
Value:1

Key Path:borderColor
Type:Color
Value:red(実際は色を直接選択)
“`
**しかし、これだけでは反映されない.**

layer.borderColorプロパティにはcgColor値を設定しないといけないが、StoryBoardで指定している色はUIColorのため
コードで変換し

元記事を表示

【UIKit】iOS15でNavigationBarの色を変更する

# やり方
「Cocoa Touuch Class」を選択して「Next」を選択します。
![スクリーンショット 2022-07-09 16.39.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5d6c5625-a427-45b1-4d15-1e77cd0c1820.png)

**Class**: 任意のクラス名を設定
**Subclass of**: `UINavigationController`を選択
![スクリーンショット 2022-07-09 16.40.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/33efb98b-0138-9e89-d048-44a1752bed97.png)

作成したクラスをStoryboardと紐付けます。
![スクリーンショット 2022-07-09 16.45.50.png](https://qiita-image-store.s3.

元記事を表示

FlutterでiOSのボリュームをコントロールしてみる

[volume_control](https://pub.dev/packages/volume_control)を利用して、下記のようなUIを作成し実際にiOSの音量を調整できるようにしてみました。
![スクリーンショット 2022-07-08 15.42.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1134006/360246a6-ba65-5edc-6ed5-e782e5c5c0cb.png)
“`pubspec.yaml
dependencies:
volume_control: ^X.X.X
“`
バージョンは上記サイトより指定し
“`
flutter pub get
“`

`import ‘package:volume_control/volume_control.dart’;`して使えるようにします。とりあえず、`Example`通りにやっても動かなかったので、`Hooks`に切り替えましたが上手くスライドしてくれず。
“`
dependencies:
hook

元記事を表示

iOSシミュレーターのフォルダをサクッと開くスクリプト

以下のスクリプトを実行すると、現在実行中のシミュレーターのフォルダを開くことができます。

バンドルの中身を確認したり、ドキュメントフォルダにファイルが保存されていることを確認したりしたいときに、このスクリプトがあるとさくっとシミュレーターのフォルダを開くことができるので便利です。

“`bash
#!/bin/bash

cd ~/Library/Developer/CoreSimulator/Devices
cd `ls -t | head -1`/data
open .
“`

![20211224015340.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/93f4129b-7674-2a51-ba3e-110efb09a6b7.png)

簡単にスクリプトの内容を説明します。

`cd ~/Library/Developer/CoreSimulator/Devices`で、全シミュレーター端末のフォルダが格納されたパスに移動します。

![20211224020308

元記事を表示

【SwiftUI】iOS15から発生するPickerのバグ

# はじめに
iOS14では機能していたコードがiOS15で突然挙動がおかしくなるバグに遭遇しました。
解決方法が分かる方はコメントください。

# 条件
– iOS15
– スタイルが`wheel`

# 仕様?バグ?
まず前提として、なぜか`Picker`スタイルが`wheel`だと`frame`だけでサイズ変更する事ができません。
`clipped()`を追加する必要があります。
“`diff_swift
import SwiftUI

struct ContentView: View {
@State var index: Int = 0
var body: some View {
Picker(“”, selection: $index) {
ForEach(0..<5) { i in Text("選択肢\(i + 1)") } } .labelsHidden() .pickerStyle(.wheel)

元記事を表示

addSubviewしたカスタムビューのUIButtonが押せない時

# はじめに
xibでカスタムビューを作成し、viewControllerでaddSubviewしたのですが、カスタムビュー内のUIButtonをタップしても反応してくれなかったので対処法をメモ
# 原因
カスタムビューのサイズ指定をviewControllerではなくカスタムビューで行っていました。
“`CustomView.swift
final class CustomView: UIView {

@IBOutlet private weak var button: UIButton!

init() {
let view = UINib(nibName: “UpperSearchView”, bundle: nil).instantiate(withOwner: self, options: nil).first as! UIView
view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 50) //カスタムビューでサイズ指定
ad

元記事を表示

SwiftUI4, iOS16以降で使用できる NavigationStackについて軽く調査した

## まえがき

WWDC2022にてNavigationStackが新しく発表されました。
iOS16からNavigationViewはdeprecatedで、NavigationStackを使わないといけないです。

SwiftUIは画面遷移周りがよくない・・・・!と、
SwiftUIを実戦投入していても、画面遷移まわりはUIKitを使用しているという話をチラホラききますし、
私が参画している現場においても画面遷移はUIKitで書いてます。

NavigationStackをどんなものか気になっていたので、軽く調査してみました。

## Case 1, NavigationStackとNavigationLinkのみを使って遷移

NavigationStackの中にNavigationLinkを配置して遷移するだけ。
NavigationStackをdeprecatedされたNavigationViewのようです。

“` swift
struct NavigationStackSample1: View {
let parkList: [Park] = [.init(

元記事を表示

Swift 画面を強制的に回転させたい!

回転のコードはこれ!
“`swift
override func viewDidLoad() {
//右か左か判定
if(UIDevice.current.orientation.rawValue == 4){
UIDevice.current.setValue(4, forKey: “orientation”)
}
//左横画面以外の処理
else {
//最初の画面呼び出しで画面を右横画面に変更させる。
UIDevice.current.setValue(3, forKey: “orientation”)
}
}

//MARK: 回転設定
override var shouldAutorotate: Bool {
return true
}
//MARK: 横画面のみ許可
override var supportedInterfaceOrie

元記事を表示

TypeScript で デバイスの傾きを検知する

## 目的
– ios でもデバイスの傾きを検知したい。
– TypeScript で書きたい。

## ソースコード

“`typescript
const permitOrientation = async () => {
if (typeof (DeviceOrientationEvent) !== “undefined” && typeof (DeviceOrientationEvent as any).requestPermission === ‘function’) {
//ios ブラウザでアクセスを求める
const res = await (DeviceOrientationEvent as any).requestPermission()
if (res !== “granted”) {
return //許可しない場合、イベントリスナー起動できない。
}
}
/**
* 傾き検知時に起動
*/
wi

元記事を表示

NSURLErrorDomainの内容

[NSURLErrorDomainのコード一覧](https://qiita.com/temoki/items/aaf96408de14cb40b704)、参考になったのですが、それぞれどういった内容なのかも知りたくなり、説明を見つけたので残しておく。
→ [URL Loading System Error Codes](https://developer.apple.com/documentation/foundation/1508628-url_loading_system_error_codes)
故意的に、これらのエラーを発生させる方法も知っておきたいが、50コもあるので一旦保留。

[参考][NSURLErrorDomainのコード一覧](https://qiita.com/temoki/items/aaf96408de14cb40b704)

元記事を表示

【Flutter】カメラの使用許可を得るための設定【iOS】

# Runner.xcodeprojファイルの設定をする
簡単にできたのでメモ程度です。

## 設定を行いたいFlutterアプリのファイルを開きRunner.xcodeprojを開く

パスはおよそこんな感じかと思います
/Users/ユーザー名/StudioProjects/アプリ名/ios

### Runner.xcodeprojはこの青いファイル
![スクリーンショット 2022-07-05 12.12.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2030574/9273c4aa-5161-919a-9128-bbfc75504d1a.png)

## RunnerディレクトリのInfoを開く
開いてみるとこんな感じになるかと思います。
![スクリーンショット 2022-07-05 12.06.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2728559/edaae867-2a55-d753-

元記事を表示

SwiftUIで割り勘アプリの作り方を徹底解説!

SwiftUIを学んでいく過程でポートフォリオがてら作成した「**割り勘アプリ**」の作成手順と方法をまとめていきます。

初心者の方でも同じものが作れるように解説できたらなと考えています。

拙い点や至らぬ点も多いと思いますがよろしくお願いいたします。

# 今回作っていくアプリ

:::note
割り勘アプリ
:::

● 機能
+ 金額を入力して蓄積していく
+ 割り勘にする人数を指定
+ トータル金額 ÷ 人数 = 一人当たりの金額

***

● 環境
+ SwiftUI

***

● 作成(編集)するページ
+ ContentView(入力ビュー)
+ CalcBill(計算ビュー)
+ FileController(ファイル操作クラス)

***

● 作成していくポイント
+ ユーザーが金額を入力できるようにする
+ 入力された金額を蓄積
+ 蓄積した金額のリセット
+ 割り勘する人数の指定

## 新規プロジェクトの立ち上げ

今回はSwiftUIを使ってiOSアプリを作成していきます。必要になってくるのは**XCode**のみです。

[Xcodeのインストー

元記事を表示

FlutterのiOSシュミレーターで設定画面に遷移させる

最終的にはアプリ内からIOS設定画面に遷移できれば良いので。
![スクリーンショット 2022-07-06 12.16.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1134006/da0a4f2b-3643-bab5-72d5-5cbd877fdcba.png)
まずは、[permission_handler](https://pub.dev/packages/permission_handler)を`dependencies`の中に最新版を書きます。
“`pubspec.yaml
dependencies:
permission_handler: ^XX.X.X <-latest ``` `flutter pub get`する前に下記2行を`Info.plist`内に追記と↓ `PermissionGroupNotification   
通知をするため`
“`ios/Runner/Info.plist
~省略~

元記事を表示

Firebase AuthenticationでのSign in with Appleの削除要件に対するCloud FunctionsとFlutterの実装

こんにちは。[virapture株式会社](https://virapture.com)でCEOしながら[ラグナロク株式会社](https://ragna-rock.com)でもCKOとして働いている[もぐめっと](https://mogmet.com)です。

![IMB_I6Cq1q.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42234/87b7c585-c4c4-1e04-42b5-337089d9e511.gif)
趣味はスノボです。まだまだ初心者ですが最近ルックバックかっこインディーという新しい技ができました。あまりにも嬉しかったのでつい動画にしてしまいました。

本日は**Sign in with Apple**を用いているときに、アカウント削除機能を実装しないとレビューが通らなくなるようになってしまったので、Firebaseを使ったプロジェクトでどう実装すればいいかの共有をします。

https://developer.apple.com/jp/news/?id=12m75xbj

#

元記事を表示

APIKitのエラーを整理する

[APIKit](https://github.com/ishkawa/APIKit)ではどのようなエラーが定義されていて、それらがどういうときにスローされるかを整理します。

APIKitでAPIClientを実装するときに、エラーハンドリング周りをどう実装するかを考える際の参考になるかと思います。

# 前提とサンプルコード
APIKitが提供しているデフォルトの実装、つまりURLSessionAdapterを使用することを前提としています。

本記事執筆時点では、APIKitでは以下3つのエラーを定義しています。

– RequestError
– ResponseError
– SessionTaskError

HTTP通信処理の起点となる`send(_:callbackQueue:handler:)`メソッドを実行してエラーになると、`handler`にはSessionTaskErrorが渡されます。なのでRequestErrorとResponseErrorはSessionTaskErrorに内包される形になります。

エラーのパターンを整理すると、こんな感じの

元記事を表示

FlutterでiOSシュミレーターが作動しない問題

久々に修正しようとflutterを立ち上げてiosシュミレーターを開こうとしたら、デバッグコンソールに下記エラーが出て立ち上がらなくなっていました。
“`
Running “flutter pub get” in hogehoge…
The current Dart SDK version is 2.17.0-182.0.dev.

Because flutter_hooks 0.18.5+1 requires SDK version >=2.17.0 <3.0.0 and no versions of flutter_hooks match >0.18.5+1 <0.19.0, flutter_hooks ^0.18.5+1 is forbidden. So, because hoge depends on flutter_hooks ^0.18.5+1, version solving failed. pub get failed (1; So, because hoge depends on flutter_hooks ^0.18.5+1, version solving

元記事を表示

【SwiftUI】モディファイアを条件によって変える

# はじめに
今回作成するサンプルはindexが3の倍数の場合にpaddingを付けるというものです。
いい案が思いつかなかったので、サンプルとしてはわかりにくいかも知れないです笑
完成形はこのような形になります。
![simulator_screenshot_606CF1B6-853E-400A-A0E9-684FC1AD1D5F.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/bf77a33d-5135-04f5-70df-b79683d393b4.png)

# やり方
Viewを拡張してif文で条件分岐します。
“`swift
import SwiftUI

struct ContentView: View {
var body: some View {
List {
ForEach(0..<30) { index in Text("テキスト \(index)")

元記事を表示

WWDCのセッションビデオ一覧表の作り方

こちら [[WWDC22]セッションビデオ一覧 – Qiita](https://qiita.com/YokohamaHori/items/a67dcc89463ea9e7bcb0) でWWDC22のセッションビデオの一覧表をMarkdown形式で作成した手順になります。

もっとスマートな方法をとりたかったのですが、あまり時間をかけたくなかったので、最短の調査で完成する方法にしました。(やっつけ仕事なので、後で思い出せるようにメモしておきます)

# やりたいこと

WWDCのセッションビデオを曜日ごとに一覧表示したい。

## フォーマット

“`swift
# Tuesday

| 項番 | タイトル(URLリンク付き) | メモ |
| — | — | — |
| 1 | [Add accessibility to your Unity games](https://developer.apple.com/videos/play/wwdc2022/10151/) |
“`

## WWDCのセッション一覧

[Sessions – WWDC22 – Appl

元記事を表示

【SwiftUI】入力値チェック

# はじめに
入力フォームに値が入力された時にボタンをクリックできる実装について説明していきます。
それに加え、ボタンの色を変化させる方法について初めて知ったのでメモとして残しておきます!
テキストフォーム、ボタンの作成方法についてはここでは説明しませんので悪しからず。

# 環境
Xcode 13.4.1
Swift 5.6.1
MacOS 12.4

# 入力値チェック

## 書き方
“` swift:
.disabled(変数名.isEmpty)
“`
`.isEmpty`により文字列が空かどうかをbool値として扱う。
この値がtrueならばクリック不可となり、falseならばクリック可能となる。

## ボタンの色を変える

三項演算子を用いることでif文のように処理を分けることが可能である。
これによりViewの挙動を容易に変化できる。

`bool値 ? trueの場合 : falseの場合`

入力フィールドに文字列が書かれていない時、ボタンの背景色はグレーで文字の色は黒。文字が入力された時、背景色は青色で文字の色は白になるようにする。

“`swift
.

元記事を表示

【UIKit】画面遷移の方法

# StoryBoardで遷移
Controlを押しながらButtonをViewControllerにドラッグします。
![スクリーンショット 2022-07-04 19.47.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/565859a0-9ec4-33d8-c1ac-f57d0a542b7d.png)
Action Segueの中から遷移方法を選択します
![スクリーンショット 2022-07-04 19.47.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/e586f636-b928-0c18-fdff-08adb73bb5dd.png)

# コードで遷移
「Cocoa Touch Class」を選択して「Next」を押します。
![スクリーンショット 2022-07-04 20.19.33.png](https://qiita-image-store.s3.ap-nor

元記事を表示

OTHERカテゴリの最新記事