반응형

View 8

[iOS, Swift] hugging priorty 및 CompressionResistancePriority 수정(programmatic)

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. Priority를 수정할 때에 Storyboard에서는 hugging priority와 compressionResistancePriority를 수정하기 쉬웠습니다. 코드로 뷰를 짠 후에 뷰의 priority를 수정하는 방법으로는 setContentHuggingPriority와 setContentCompressionResistancePriority 함수를 활용하면 됩니다. 코드예시 view.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) view.setContentHuggingPriority(.defaultLow, for: .horizont..

iOS/코드조각 2023.03.03

[iOS, Swift] StackView 안의 뷰가 늘어나는 오류해결

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. 최근에 스택뷰를 활용하는데 스택뷰 안에 있는 뷰들이 뷰들의 크기가 아닌 스택뷰에 크기에 맞춰 늘어나는 문제가 있었습니다. 그 이유는 스택뷰의 Constraints를 지정할 때 왼쪽 오른쪽의 제약을 상위 뷰에 맞춰서 주었기 때문인데 스택뷰의 제약을 왼쪽에다가만 준다면 문제를 해결할 수 있습니다.

iOS/오류해결 2023.03.02

[iOS, Swift] UIMenu 기본적인 예제

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. iOS13 이후부터 UIMenu를 사용할 수 있게 되었습니다. 기존에 AlertController를 통해 사용자에게 알림을 표현하였는데, 여러 개의 메뉴를 선택할 수 있는 UIMenu를 쓸 수 있어서 개발의 폭이 넓어졌습니다. UIAction은 버튼을 클릭할 때 사용하는 addTarget과 비슷한 역할을 하는데 title, image, handler 등의 속성을 추가하여 메뉴에 표현되는 이미지와 클릭되었을 때 동작하는 코드를 넣을 수 있습니다. let actionArray: [UIAction] = [ UIAction(title: "테스트1", image: UIImage(systemName: "x.circle.fill..

iOS/코드조각 2023.02.26

[Library, Metal] 삼각형 그리기 (pipeline)

iOS 16.1, Xcode 14.1, Swift 5, Playground 환경에서 진행했습니다. 삼각형의 좌표를 저장하는 [Float] 배열을 만들고, 삼각형의 좌표를 구성하는 Buffer를 생성합니다. let vertices: [Float] = [ 0, 1, 0, -1, -1, 0, 1, -1, 0 ] let vertexBuffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout.size) Shader Function은 GPU를 돌리기 위한 작은 프로그램입니다. Shader Function을 작성하기 위하여 Metal Shading Laungage(MSL)을 사용해야합니다. MSL은 C++로 구성되어 있습니다. .m..

iOS/라이브러리 2023.02.03

[Library, Metal] MetalView 그리기

iOS 16.1, Xcode 14.1, Swift 5, Playground macOS 환경에서 진행했습니다. MetalKit에서 제공하는 MTKView는 NSView 또는 UIView를 상속하며, MTKView는 메탈에 관련된 기능들을 사용할 수 있게 합니다. MTKView를 사용하기 위해서 먼저 Device를 등록해주어야합니다. import PlaygroundSupport import MetalKit let view = MTKView(frame: frame, device: device) view.clearColor = MTLClearColor(red: 1, green: 1, blue: 0.8, alpha: 1) guard let device = MTLCreateSystemDefaultDevice() e..

iOS/라이브러리 2023.02.03

[iOS, Swift] Constraint를 통한 동적 높이 조절

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. 스토리보드에서 작성한 뷰와 Constraint를 코드로 가져와 Constraint 값을 변경하여 동적으로 움직이는 뷰를 만들 수 있습니다. @IBOutlet var bottomConstraint: NSLayoutConstraint! @IBAction func didTapContainButton(_ sender: UIButton) { if bottomConstraint.constant == 500 { bottomConstraint.constant = 300 } else { bottomConstraint.constant = 500 } }

iOS/코드조각 2022.10.08
반응형