반응형

전체 글 229

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

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

iOS/오류해결 2023.03.02

[iOS, Swift] 이미지뷰에 이미지 넣기(인터넷 url 주소)

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. UIImageView에 image를 넣으려면 아래와 같이하면 이미지를 넣을 수 있다. imageView.image = UIImage(named: "이미지이름") 인터넷에서 있는 url 주소로도 imageView에 이미지를 넣을 수 있는데, Data를 초기화할 때, url 주소를 입력하여 url에 있는 이미지를 data 형식으로 불러온 후 UIImage를 받은 data를 통해 만들고 난 후에 imageView에 이미지를 넣는 방식이다. DispatchQueue.global().async { [weak self] in if let data = try? Data(contentsOf: url) { if let image =..

iOS/코드조각 2023.02.28

[iOS, Swift] 이미지 파일 업로드하기 (alamofire, multipart-data)

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. alamofire를 사용하여 이미지 파일을 업로드할 때에는 기존에 썼던 AF.request와는 달리 AF.upload 함수를 사용하여야합니다. 먼저 multipart/form-data 형식으로 보내기 위해 header 변수에 Content-Type으로 형식을 설정합니다. 그리고 multipartForm으로 전송하기 위해 upload(multipartFormData: , to: ) 함수를 선택합니다. let header = ["Content-Type": "multipart/form-data"] AF.upload(multipartFormData: { multipartFormData in }, to: url, method..

iOS/코드조각 2023.02.27

[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

[iOS, Swift] 라디오버튼 구현하기

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. 라디오버튼 구현의 기본적인 아이디어로는 RadioButton을 관리하는 Controller를 만들고 배열변수에 라디오버튼을 넣습니다. 배열에 넣을 때 normal 상태에서는 기본적인 이미지가 나오게끔, selected 상태일 때는 선택된 이미지가 나오게끔 설정합니다. 기본적으로 선택될 radioButton을 선택을 하고, 버튼이 클릭되면 배열에 담겨있는 버튼 중 하나만 선택되게끔 합니다. 전체코드 class TestViewController: UIViewController { @IBOutlet weak var radioButton1: UIButton! @IBOutlet weak var radioButton2: UIB..

iOS/코드조각 2023.02.25

[iOS, Swift] 체크박스 구현하기

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. iOS에서는 체크박스와 라디오버튼이 기본적으로 제공되어지지 않습니다. 그러나 체크박스는 기본적인 버튼 속성을 사용하여 구현할 수 있습니다. 버튼을 생성할 때에, setImage 설정할 때에 state 값이 normal인 것과 selected인 값을 따로 설정해줍니다. lazy var checkButton: UIButton = { var button: UIButton = UIButton(type: .custom) button.translatesAutoresizingMaskIntoConstraints = false button.setImage(UIImage(systemName: "rectangle"), for: .nor..

iOS/코드조각 2023.02.24

[iOS, Swift] SF Symbol 활용하기

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. SF Symbol은 애플 플랫폼에 기본적으로 저장되어 있는 폰트 또는 이미지 입니다. 기본적인 아이콘을 활용하여 앱을 개발할 때에 SF Symbols 앱이 도움이 됩니다. 만약 Xcode 내에서 ImageView에 애플이 기본적으로 제공하는 이미지를 사용할 경우에는 아래와 같이 사용하면 됩니다. imageView.image = UIImage(systemName: "x.circle.fill") 참조 https://developer.apple.com/sf-symbols/ SF Symbols - Apple Developer With nearly 4,500 symbols, SF Symbols is a library of i..

iOS/팁 2023.02.23

[iOS, Swift] Keyboard로 인해 가려진 뷰 올리기

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. 먼저 ViewDidLoad 함수에 키보드가 올라가거나 내려가는 Notification을 구독합니다. func setKeyboardObserver() { NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboard..

iOS/코드조각 2023.02.22
반응형