フレームの概要 フレームはレイアウトの基準となる枠で、デフォルトでは「Viewのサイズ=フレームのサイズ」ですが、frameモディファイアを使ってフレームサイズを変更できます。 具体的な例を示すと、下の図の青背景の部分がTextView、周りの赤枠がこのViewに設定されたフレームです。 VStackやHStackなどのレイアウトコンテナでは、このフレームを基準にViewの配置が行われます。
![【SwiftUI】Viewのフレームサイズ指定(frame)](https://cdn-ak-scissors.b.st-hatena.com/image/square/f86a903d881381683e45d4e15f3d281a44d05e0b/height=288;version=1;width=512/https%3A%2F%2Fcapibara1969.com%2Fwp-content%2Fuploads%2F2020%2F01%2Fd01640770cb1f4d24aca2e636fe7b342-11.png)
フレームの概要 フレームはレイアウトの基準となる枠で、デフォルトでは「Viewのサイズ=フレームのサイズ」ですが、frameモディファイアを使ってフレームサイズを変更できます。 具体的な例を示すと、下の図の青背景の部分がTextView、周りの赤枠がこのViewに設定されたフレームです。 VStackやHStackなどのレイアウトコンテナでは、このフレームを基準にViewの配置が行われます。
import SwiftUI struct ContentView: View { @GestureState var magnifyBy = CGFloat(1.0) var magnification: some Gesture { MagnificationGesture() .updating($magnifyBy) { currentState, gestureState, transaction in gestureState = currentState } } var body: some View { Circle() .frame(width: 100 * magnifyBy, height: 100 * magnifyBy, alignment: .center) .gesture(magnification) } }
名前を指定して画像を表示する まずは、画像名を指定して画像を表示する方法について解説致します。 画像の表示は、Image(_ name: String, bundle: Bundle? = nil)というように実装します。 ※なお、Assetsにsoccer.jpgという画像が保存されいることを前提としております。 UIImageを指定して画像を表示する 続いて、UIImageを指定して画像を表示する方法です。 UIImageを指定してする場合は、uiImage: というラベルが必要になります。 Imageのカスタマイズ 画像のサイズを変更する 続いて、画像のサイズを変更する方法についてです。 Viewのサイズは、 frame(width: CGFloat? = nil, height: CGFloat? = nil, alignment: Alignment = .center) で変更
// サイズに合わせて四角形を書く private func drawRectangleLegacy(size: CGSize) -> UIImage? { // コンテキスト(画像を描画する下地のようなもの)を生成 UIGraphicsBeginImageContext(size) // 後始末(しないとメモリーリークを起こす) defer { UIGraphicsEndImageContext() } // コンテキストを取得 guard let context = UIGraphicsGetCurrentContext() else { return nil } // 画像を描画 context.setFillColor(UIColor.red.cgColor) context.fill(CGRect(origin: CGPoint.zero, size: size)) // 描いた
// // ViewController.swift // UIKit060 // // Created by Misato Morino on 2016/08/15. // Copyright © 2016年 Misato Morino. All rights reserved. // import UIKit extension UIImage { /* 画像をResizeするクラスメソッド. */ class func ResizeÜIImage(image : UIImage,width : CGFloat, height : CGFloat)-> UIImage!{ // 指定された画像の大きさのコンテキストを用意. UIGraphicsBeginImageContext(CGSize(width: width, height: height)) // コンテキストに画像を描画す
はじめに CX事業本部の平屋です。 本記事では、UIGraphicsImageRendererを使用して画像のリサイズや着色を行う実装を紹介します。 UIGraphicsImageRendererの概要は以下の記事で紹介しています。 [iOS 10] UIGraphicsImageRenderer について | DevelopersIO 検証環境 macOS Catalina 10.15.6 Xcode Version 12.4 リサイズを行う 早速実装を紹介します。 以下は、指定サイズにリサイズするresized(size:)の実装例です。 リサイズ後のサイズを指定してUIGraphicsImageRendererを作成し、image(actions:)メソッドの引数内で描画を行い、リサイズされたUIImageを生成します。 import UIKit extension UIImage
A graphics renderer for creating Core Graphics-backed images.
はじめに こんにちは。モバイルアプリサービス部の平屋です。 本記事では iOS 10 で追加された UIGraphicsImageRenderer クラスを使ってできることを紹介していきます。 UIGraphicsImageRenderer クラスは、その名の通り画像を描画するためのクラスです。 実装 さっそく、UIGraphicsImageRenderer クラスの使用例を見ていきます。 「色とサイズを指定して UIImage を生成するメソッド」を例に、UIGraphicsImageRenderer クラスを使用する場合と使用しない場合の違いを比べてみます。 // 色とサイズを指定して UIImage を生成する func image(color: UIColor, size: CGSize) -> UIImage { // UIImage 生成処理 // ... } UIGraphi
画像描画関連のまとめ CGContextを使って画像描画 雰囲気としては、JavaScriptのCanvasを使ったことがある人であれば、あのイメージです。 画像を加工するフローとしては以下。 CGContextのサイズを決めて開く CGContextを取得 (必要であれば)CGContextのtransformを設定 Draw/Render系メソッドを使ってCGContextに画像を描画 CGContextから描画済の画像を取得 CGContextを閉じる サンプルコード //コンテキストを開く CGSize size = [描画したい画像サイズ]; UIGraphicsBeginImageContext(size); //コンテキストを得る CGContextRef context = UIGraphicsGetCurrentContext(); //コンテキストの状態を保存 CGCo
#SwiftUIでフォトライブラリを表示する ボタンをタップして、フォトライブラリを表示します。 フォトライブラリで写真を選択すると、全画面に表示します。 Swiftを基礎から学ぶには 自著、工学社より発売中の「まるごと分かるSwiftプログラミング」をお勧めします。変数、関数、フロー制御構文、データ構造はもちろん、構造体からクロージャ、エクステンション、プロトコル、クロージャまでを基礎からわかりやすく解説しています。 環境 Swift 5.3 Xcode 12.0.1 macOS 10.15.7 フォトライブラリ フォトライブラリをSwiftUIでラップした構造体を定義します。 import SwiftUI struct ImagePicker: UIViewControllerRepresentable { var sourceType: UIImagePickerController
はじめに PHPickerViewControllerはUIImagePickerControllerのカメラ以外の機能に複数選択など新機能が追加されました。 そのPHPickerViewControllerを使ったサンプルコードを作ってみました。 Xcode12 beta2で作成しています。 サンプルコードはgithubで公開しています。 コードの解説 呼び出し func makeUIViewController(context: Context) -> some UIViewController { var configuration = PHPickerConfiguration() // 静止画を選択 configuration.filter = .images // 複数選択可能(上限枚数なし) configuration.selectionLimit = 0 let picke
【読売新聞】 東京・上野のストリップ劇場「シアター上野」の経営者ら男女6人が今月、警視庁に公然わいせつ容疑で現行犯逮捕された。だが、ストリップ劇場はそもそも風営法で「性的好奇心をそそるため衣服を脱いだ人の姿態を見せる興行」と規定され
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く