Skip to content

Instantly share code, notes, and snippets.

View SatoTakeshiX's full-sized avatar

佐藤剛士 SatoTakeshiX

View GitHub Profile
@SatoTakeshiX
SatoTakeshiX / TextEditorView.swift
Created July 20, 2023 15:02
Edit Menu for UITextView
//
// TextEditorView.swift
// SelectableEditorView
//
// Created by satoutakeshi on 2023/07/15.
//
import SwiftUI
#if canImport(UIKit)
import UIKit
@SatoTakeshiX
SatoTakeshiX / ViewController.swift
Created October 3, 2021 12:30
Order by CALayer and UIView
//
// ViewController.swift
// CALayerFrame
//
// Created by satoutakeshi on 2021/10/02.
//
import UIKit
class ViewController: UIViewController {
@SatoTakeshiX
SatoTakeshiX / SuperEllipse.swift
Created January 31, 2021 06:34
SuperEllipse
// Created by satoutakeshi on 2021/01/30 in MIT License
//
import SwiftUI
struct SuperEllipse: View {
var body: some View {
Image(systemName: "moon")
.resizable()
.frame(width: 100, height: 100)
@SatoTakeshiX
SatoTakeshiX / SwithcMenu.swift
Last active September 9, 2021 13:56
開閉式メニュー
//
// ContentView.swift
// MenuSample
//
// Created by satoutakeshi on 2020/12/21.
//
import SwiftUI
struct ContentView: View {
final class DataSource: ObservableObject {
@Published var counter = 0
}
struct StateObjectCounterView: View {
@StateObject private var dataSource = DataSource()
var body: some View {
VStack {
Button("increment counter") {
dataSource.counter += 1
@SatoTakeshiX
SatoTakeshiX / merge.rb
Last active October 16, 2020 13:44
merge
master_array = [[1, 2], [3, 4]]
remote_array = [{"id" => 12, "config" => [3, 4]}, {"id" => 533, "config" => [1, 2]}]
result_test = ["a", "b"] # master_arrayと同じindexでオブジェクトを作りたい。 { "config" : [1, 2], "id":"a"}
array_result = master_array.map.with_index { |item, index|
remote = remote_array.find {|i| item == i["config"]}
result = {
"result" => result_test[index],
"configs" => item,
"id" => remote["id"]
@SatoTakeshiX
SatoTakeshiX / SingleSelectableView.swift
Last active July 12, 2020 07:38
SingleSelectableView.swift
enum BoxType: String {
case unknown
case red
case green
case blue
}
final class SingleSelectableBoxViewModel: ObservableObject {
@Published var selectedBox: BoxType = .unknown
var cancels: [AnyCancellable] = []
@SatoTakeshiX
SatoTakeshiX / MultipleSelectableView.swift
Created July 12, 2020 05:47
SwiftUI Multiple Selectable View Components
import SwiftUI
import Combine
final class MultipleSelectableViewModel: ObservableObject {
@Published var isSelectedRed: Bool = false
@Published var isSelectedGreen: Bool = false
@Published var isSelectedBlue: Bool = false
var cancels: [Cancellable] = []
@SatoTakeshiX
SatoTakeshiX / ContentView.swift
Last active December 12, 2022 23:15
AVFundation by SwiftUI with Coordinator.
struct ErrorInfo: Error {
var showError: Bool
var message: String
}
struct ContentView: View {
@State var errorInfo: ErrorInfo = ErrorInfo(showError: false, message: "")
@State var onAppear: Bool = false
var body: some View {
ZStack {
@SatoTakeshiX
SatoTakeshiX / scaleAndOrient.swift
Created May 17, 2020 07:13
Scale and Orient Image
func scaleAndOrient(image: UIImage) -> UIImage {
// Set a default value for limiting image size.
let maxResolution: CGFloat = 640
guard let cgImage = image.cgImage else {
print("UIImage has no CGImage backing it!")
return image
}