| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 싱글톤
- 라이징캠프
- replacesubrange()
- 프로그래머스
- tableView
- alamofire
- 알고리즘
- 클론코딩
- components()
- MVC
- 코드업 파이썬 기초 100제
- xocde
- GIT
- github
- variadic parameters
- prefix()
- joined()
- swift
- 대문자소문자
- reduce()
- IOS
- String()
- Autolayout
- API
- 코딩테스트
- suffix()
- Segue
- BackgroundModes
- zip()
- uikit
- Today
- Total
Daeng iOS
[iOS/UIKit] UIView 테두리 추가 (전체, 특정부분) 본문
1. 전체 테두리
btnView.layer.borderWidth = 0.5
btnView.layer.borderColor = UIColor.lightGray.cgColor

2. 부분 테두리
📍autoresizingMask 란?
- superview의 bounds가 변경될 때, receiver가 자체크기를 조정하는 방법을 결정하는 bit mask
(bit mask: 컴퓨터의 언어인 이진수를 사용하면 연산이 빠른 점을 이용해,
정수를 이진수로 표현하고 비트 연산을 통해 문제를 해결해 나가는 기법)
- view의 bounds 가 변경되면, 해당 view는 각 subview의 autoresizing mask에 따라 subview의 크기를 자동으로 조정한다.
- UIView에 설명된 상수를 결합하여 이 mask의 값을 지정한다.
즉, Autoresizing mask 를 사용하여, superview가 커지거나 줄어듦에 따라 subview의 크기나 위치를 조정한다!!
- flexible~Margin 을 지정해주지 않으면 그 방향으로 고정된다
(.flexibleTopMargin / .flexibleBottomMargin / .flexibleLeftMargin / .flexibleRightMargin)

따라서 아래의 부분 테두리를 그려주는 코드는
AutoresizingMasks 슈퍼뷰와 함께 테두리 크기가 조정되도록 테두리를 CGRect로 그려준 방법인 것 같다!
아래 코드에서 upperView는 내가 추가한 UIView의 아울렛 변수,
0.5와 5부분에는 내가 설정하려는 테두리의 두께를 지정하면된다!!
💡위쪽만 테두리
let border = UIView()
border.backgroundColor = .lightGray
border.autoresizingMask = [.flexibleWidth, .flexibleBottomMargin]
border.frame = CGRect(x: 0, y: 0 , width: upperView.frame.width, height: 0.5)
upperView.addSubview(border)

💡아래쪽만 테두리
시작좌표의 y가 view의 높이에서 그리려는 테두리 두께 만큼 뺀 곳으로 지정한다.
let border = UIView()
border.backgroundColor = .lightGray
border.autoresizingMask = [.flexibleWidth, .flexibleTopMargin]
border.frame = CGRect(x: 0, y: upperView.frame.height - 0.5 , width: upperView.frame.width, height: 0.5)
upperView.addSubview(border)

💡오른쪽만 테두리
시작좌표의 x를 view의 너비에서 그리려는 테두리 두께 만큼 뺀 곳으로 지정한다.
let border = UIView()
border.backgroundColor = .red
border.autoresizingMask = [.flexibleHeight, .flexibleLeftMargin]
border.frame = CGRect(x: upperView.frame.width - 5 , y: 0 , width: 5, height: upperView.frame.height)
upperView.addSubview(border)

💡왼쪽만 테두리
let border = UIView()
border.backgroundColor = .red
border.autoresizingMask = [.flexibleHeight, .flexibleRightMargin]
border.frame = CGRect(x:0 , y: 0 , width: 5, height: upperView.frame.height)
upperView.addSubview(border)

How to add a border just on the top side of a UIView
My question is on the title. I don't know how to add a border in a specific side, top or bottom, any side... layer.border draws the border for the whole view...
stackoverflow.com
https://developer.apple.com/documentation/uikit/uiview/1622559-autoresizingmask
Apple Developer Documentation
developer.apple.com
'IOS > UIKit' 카테고리의 다른 글
| [iOS/UIKit] url 로 image 지정하기 (0) | 2022.10.24 |
|---|---|
| [iOS/UIKit] 네이버 검색 API 연동 (영화) (0) | 2022.10.24 |
| [iOS/UIKit] searchBar 사용 (+테두리 없애기) (0) | 2022.10.23 |
| [IOS/UIKit] KaKao Maps API 현위치 트래킹 (0) | 2022.08.13 |
| [IOS/UIKit] Kakao Maps API 연동하기 (0) | 2022.08.04 |