Skip to content

Instantly share code, notes, and snippets.

View takoikatakotako's full-sized avatar

Onojun takoikatakotako

View GitHub Profile
@takoikatakotako
takoikatakotako / Column.swift
Created June 7, 2024 01:25
SwiftUIで表を作る
import Foundation
struct Column: Hashable {
let title: String
let rows: [String]
}
@takoikatakotako
takoikatakotako / ContentView.swift
Created May 3, 2024 16:46
Swiftのasync,awaitを使ってAPIと画像を取得し、全てが揃ってから表示する
import SwiftUI
struct ContentView: View {
@State var pokemons: [Pokemon] = []
var body: some View {
VStack {
ForEach(pokemons) { pokemon in
HStack {
Image(uiImage: pokemon.image)
@takoikatakotako
takoikatakotako / AddItemView.swift
Created May 3, 2024 16:43
SwiftUIでObservableObjectの@publishedなプロパティとBindingする
import SwiftUI
struct AddItemView: View {
@StateObject var viewState: AddItemViewState
init(items: Binding<[String]>) {
self._viewState = StateObject(wrappedValue: AddItemViewState(items: items))
}
var body: some View {
@takoikatakotako
takoikatakotako / ContentView.swift
Created May 1, 2024 15:44
iOSのファイルアプリ(UIDocumentPickerViewController)を開いてドキュメントフォルダに保存したファイルを開く
import SwiftUI
struct ContentView: View {
@State private var fileUrl: URL?
@State private var showingPicker = false
var body: some View {
VStack {
Button {
let documentDirectoryUrl = FileManager.default.urls( for: .documentDirectory, in: .userDomainMask ).first!
@takoikatakotako
takoikatakotako / ActivityViewController.swift
Created May 1, 2024 15:42
SwiftUIでUIActivityViewControllerを表示する
import SwiftUI
struct ActivityViewController: UIViewControllerRepresentable {
var activityItems: [Any]
var applicationActivities: [UIActivity]? = nil
func makeUIViewController(context: UIViewControllerRepresentableContext<ActivityViewController>) -> UIActivityViewController {
let controller = UIActivityViewController(activityItems: activityItems, applicationActivities: applicationActivities)
return controller
}
@takoikatakotako
takoikatakotako / ContentView.swift
Created May 1, 2024 15:33
SwiftUIで画像をピンチで拡大する(MagnificationGesture)
import SwiftUI
struct ContentView: View {
@State var scale: CGFloat = 1.0
var body: some View {
Image(.icon)
.resizable()
.scaleEffect(scale)
.frame(width: 200, height: 200)
@takoikatakotako
takoikatakotako / ContentView.swift
Created May 1, 2024 15:31
SwiftUIで画像をピンチで拡大する(PDFView)
import SwiftUI
struct ContentView: View {
var body: some View {
ImageViewerView(image: UIImage(named: "icon")!)
}
}
#Preview {
ContentView()
@takoikatakotako
takoikatakotako / ContentView.swift
Created May 1, 2024 15:29
SwiftUIで画像をピンチで拡大する(UIImageView + UIScrollView)
import SwiftUI
struct ContentView: View {
var body: some View {
ImageViewerView(imageName: "icon")
.ignoresSafeArea(.all, edges: .all)
}
}
#Preview {
@takoikatakotako
takoikatakotako / ContentView.swift
Created April 30, 2024 09:35
SwiftMarkdownを使いマークダウンを表示する
import SwiftUI
import Markdown
struct ContentView: View {
let markdown = """
# 東京タワー
東京タワー(とうきょうタワー、英: Tokyo Tower)は、東京都港区芝公園にある総合電波塔である。日本電波塔(にっぽんでんぱとう)とも呼ばれる。
1958年(昭和33年)12月23日竣工。東京のシンボル、観光名所である。
@takoikatakotako
takoikatakotako / ContentView.swift
Created April 30, 2024 02:37
SwiftUIでPreviewを横向きにする方法です。
import SwiftUI
struct ContentView: View {
@State var showingSnorlaxView = false
@State var showingSlowpokeView = false
var body: some View {
VStack {
Button(action: {
showingSnorlaxView = true