Skip to content

Instantly share code, notes, and snippets.

View viniciusml's full-sized avatar
🎯
Focusing

Vinicius Leal viniciusml

🎯
Focusing
View GitHub Profile
class MyView: UIView {
var firstLabel = UILabel()
var secondLabel = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
extension CodeView {
func setupView() {
buildViewHierarchy()
setupConstraints()
setupAdditionalConfiguration()
}
}
protocol CodeView {
func buildViewHierarchy()
func setupConstraints()
func setupAdditionalConfiguration()
func setupView()
}
import SwiftUI
fileprivate struct MenuButtonView: View {
var body: some View {
MenuButton(color: .white)
.frame(width: 20, height: 20, alignment: .center)
}
}
extension View {
func animateMarginRect(at index: Int, isAnimating: Bool) -> some View {
return self.modifier(
MarginMenuRect(at: index,
isAnimating: isAnimating))
}
func animateMiddleRect(at index: Int, isAnimating: Bool, width: CGFloat, spacing: CGFloat) -> some View {
return self.modifier(
MiddleMenuRect(at: index,
struct MarginMenuRect: ViewModifier {
let isAnimating: Bool
let index: Int
init(at index: Int, isAnimating: Bool) {
self.index = index
self.isAnimating = isAnimating
}
struct MiddleMenuRect: ViewModifier {
let isAnimating: Bool
let index: Int
let width: CGFloat
let spacing: CGFloat
init(at index: Int, isAnimating: Bool, width: CGFloat, spacing: CGFloat) {
self.index = index
self.isAnimating = isAnimating
func createMenu() -> AnyView {
let count = 4
let menu = GeometryReader { (geometry: GeometryProxy) in
ForEach(0..<count) { index in
Group { () -> AnyView in
let availableHeight = geometry.size.height / CGFloat(count)
let spacing = availableHeight / CGFloat(count - 1)
let height = availableHeight - spacing
let width = geometry.size.width
struct MenuButtonView: View {
var body: some View {
MenuButton()
.frame(width: 20, height: 20, alignment: .center)
}
}
public struct MenuButton: View {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
let controller1 = makeController(.red)
let controller2 = makeController(.green)
let controller3 = makeController(.blue)
let controller4 = makeController(.brown)
let controller5 = makeController(.cyan)
let controller6 = makeController(.orange)