일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- components()
- 라이징캠프
- swift
- xib
- github
- String()
- IOS
- API
- 싱글톤
- 프로그래머스
- MVC
- tableView
- prefix()
- 클론코딩
- 코딩테스트
- replacesubrange()
- uikit
- 대문자소문자
- GIT
- alamofire
- joined()
- zip()
- 코드업 파이썬 기초 100제
- Info.plist
- Autolayout
- suffix()
- Segue
- uisearchbar
- 알고리즘
- reduce()
- 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 |