【Swift3.0】UIView의 지정된 변에만 테두리를 붙인다
UIView의 상단에만 테두리를 붙이고 싶다.
TabBar를 자작의 UIView로 구현할 기회가 있어, View의 상선만을 붙이고 싶었습니다만, 별로 조사해도 나오지 않았으므로 써 둡니다. 덧붙여서 이런 느낌의 것을 상정 (보기 힘들지만 상변만 테두리선이 붙어 있습니다).
코드
ViewController.swiftimport UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = UIColor.cyan
//UIViewを作成
let myView = UIView()
myView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width/2, height: self.view.frame.height/2)
myView.center = CGPoint(x: self.view.frame.midX, y: self.view.frame.midY)
myView.backgroundColor = .white
self.view.addSubview(myView)
//上線のCALayerを作成
let topBorder = CALayer()
topBorder.frame = CGRect(x: 0, y: 0, width: myView.frame.width, height: 1.0)
topBorder.backgroundColor = UIColor.lightGray.cgColor
//作成したViewに上線を追加
myView.layer.addSublayer(topBorder)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
CALayer에서 테두리를 생성하여 View에 올리는 방법. CALayer.frame의 width 혹은 height로 선의 굵기를 조정이라고 하는 형태(좌변인가 우변인가, 상변인가 하변인가로 바뀐다). 덧붙여서 아래와 같이 좌변의 선을 추가하면 붙이고 싶은 곳에 붙일 수 있다.
ViewController.swift //UIViewを作成
let myView = UIView()
myView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width/2, height: self.view.frame.height/2)
myView.center = CGPoint(x: self.view.frame.midX, y: self.view.frame.midY)
myView.backgroundColor = .white
self.view.addSubview(myView)
//上線のCALayerを作成
let topBorder = CALayer()
topBorder.frame = CGRect(x: 0, y: 0, width: myView.frame.width, height: 1.0)
topBorder.backgroundColor = UIColor.lightGray.cgColor
//左線のCALayerを作成
let leftBorder = CALayer()
leftBorder.frame = CGRect(x: 0, y: 0, width: 1.0, height:myView.frame.height)
leftBorder.backgroundColor = UIColor.lightGray.cgColor
/*
//下線のCALayerを作成
let bottomBorder = CALayer()
bottomBorder.frame = CGRect(x: 0, y: myView.frame.height, width: myView.frame.width, height:1.0)
bottomBorder.backgroundColor = UIColor.lightGray.cgColor
//右線のCALayerを作成
let rightBorder = CALayer()
rightBorder.frame = CGRect(x: myView.frame.width, y: 0, width: 1.0, height:myView.frame.height)
rightBorder.backgroundColor = UIColor.lightGray.cgColor
*/
//作成したViewに上線を追加
myView.layer.addSublayer(topBorder)
//作成したViewに左線を追加
myView.layer.addSublayer(leftBorder)
요약
우선 View의 Layer를 타면 좋지 않다고 하는 것으로 구현해 보면 할 수 있었으므로 이것으로 하고 있습니다만, 무엇인가 다른 좋은 방법이 있으면 가르쳐 주셨으면 한다.
Reference
이 문제에 관하여(【Swift3.0】UIView의 지정된 변에만 테두리를 붙인다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Rasukarusan/items/0c605ac398a29dbc92a7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = UIColor.cyan
//UIViewを作成
let myView = UIView()
myView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width/2, height: self.view.frame.height/2)
myView.center = CGPoint(x: self.view.frame.midX, y: self.view.frame.midY)
myView.backgroundColor = .white
self.view.addSubview(myView)
//上線のCALayerを作成
let topBorder = CALayer()
topBorder.frame = CGRect(x: 0, y: 0, width: myView.frame.width, height: 1.0)
topBorder.backgroundColor = UIColor.lightGray.cgColor
//作成したViewに上線を追加
myView.layer.addSublayer(topBorder)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
//UIViewを作成
let myView = UIView()
myView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width/2, height: self.view.frame.height/2)
myView.center = CGPoint(x: self.view.frame.midX, y: self.view.frame.midY)
myView.backgroundColor = .white
self.view.addSubview(myView)
//上線のCALayerを作成
let topBorder = CALayer()
topBorder.frame = CGRect(x: 0, y: 0, width: myView.frame.width, height: 1.0)
topBorder.backgroundColor = UIColor.lightGray.cgColor
//左線のCALayerを作成
let leftBorder = CALayer()
leftBorder.frame = CGRect(x: 0, y: 0, width: 1.0, height:myView.frame.height)
leftBorder.backgroundColor = UIColor.lightGray.cgColor
/*
//下線のCALayerを作成
let bottomBorder = CALayer()
bottomBorder.frame = CGRect(x: 0, y: myView.frame.height, width: myView.frame.width, height:1.0)
bottomBorder.backgroundColor = UIColor.lightGray.cgColor
//右線のCALayerを作成
let rightBorder = CALayer()
rightBorder.frame = CGRect(x: myView.frame.width, y: 0, width: 1.0, height:myView.frame.height)
rightBorder.backgroundColor = UIColor.lightGray.cgColor
*/
//作成したViewに上線を追加
myView.layer.addSublayer(topBorder)
//作成したViewに左線を追加
myView.layer.addSublayer(leftBorder)
Reference
이 문제에 관하여(【Swift3.0】UIView의 지정된 변에만 테두리를 붙인다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Rasukarusan/items/0c605ac398a29dbc92a7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)