UIView 크기는 어떻게 변경합니까?
시작시 UIView 높이를 수정하는 데 문제가 있습니다.
UIView가 필요하고 하나는 화면 크기 * 70이고 다른 하나는 간격을 채우고 싶습니다.
여기 내가 가진 것입니다
@IBOutlet weak var questionFrame: UIView!
@IBOutlet weak var answerFrame: UIView!
let screenSize:CGRect = UIScreen.mainScreen().bounds
과
questionFrame.frame.size.height = screenSize.height * 0.70
answerFrame.frame.size.height = screenSize.height * 0.30
런타임 중에는 앱에 영향을주지 않습니다. 자동 레이아웃을 사용하지만 여백 제약 만 있습니다 ...
내가 모든 일을 잘못하고 있습니까?
여기 있습니다. 작동합니다.
questionFrame.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height * 0.7)
answerFrame.frame = CGRectMake(0 , self.view.frame.height * 0.7, self.view.frame.width, self.view.frame.height * 0.3)
이것은 다양한 방법으로 달성 될 수있다 스위프트 3.0 최신 버전에 근무 히게 2019
보기의 높이 및 너비 값을 직접 할당합니다.
userView.frame.size.height = 0
userView.frame.size.width = 10
프레임에 대한 CGRect 할당
userView.frame = CGRect(x:0, y: 0, width:0, height:0)
방법 세부 사항 :
CGRect (x : X 지점, y : Y 지점, 너비 : 시야 폭, 높이 : 시야 높이)
CGRECT에 확장 메서드 사용
빠른 파일에 다음 확장 코드를 추가하십시오.
extension CGRect {
init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) {
self.init(x:x, y:y, width:w, height:h)
}
}
보기가 크기 매개 변수를 설정하려면 애플리케이션의 어느 곳에서나 다음 코드를 사용하십시오.
userView.frame = CGRect(1, 1, 20, 45)
Swift 3 및 Swift 4 :
myView.frame = CGRect(x: 0, y: 0, width: 0, height: 0)
안녕하세요, 원하는 경우 확장합니다. 2015 Swift 2.0 업데이트
파일 Extends.Swift 만들기 및 추가 (추가 코드를 수입 기반을 변경 높이를 원하는 위치)
/**
Get Set x Position
- parameter x: CGFloat
by DaRk-_-D0G
*/
var x:CGFloat {
get {
return self.frame.origin.x
}
set {
self.frame.origin.x = newValue
}
}
/**
Get Set y Position
- parameter y: CGFloat
by DaRk-_-D0G
*/
var y:CGFloat {
get {
return self.frame.origin.y
}
set {
self.frame.origin.y = newValue
}
}
/**
Get Set Height
- parameter height: CGFloat
by DaRk-_-D0G
*/
var height:CGFloat {
get {
return self.frame.size.height
}
set {
self.frame.size.height = newValue
}
}
/**
Get Set Width
- parameter width: CGFloat
by DaRk-_-D0G
*/
var width:CGFloat {
get {
return self.frame.size.width
}
set {
self.frame.size.width = newValue
}
}
사용 용 (UIView 상 속됨)
inheritsOfUIView.height = 100
button.height = 100
print(view.height)
Interface Builder에서이 작업을 수행 할 수 있습니다.
1) 프레임 뷰 (예 : questionFrame)에서 메인 뷰로 Control- 드래그하고 팝업에서 "Equal heights"를 선택합니다.
2) 그런 다음 프레임의 크기 검사기로 이동하여 "Equal height to Superview"제약 조건 편집을 클릭하고 배율을 0.7로 설정하고 Return 키를 누르십시오.
제약 조건이 "Equal height to ..."에서 "Proportional height to ..."로 변경된 것을 볼 수 있습니다.
진행률 표시 줄의 경우 Swift 4에서
다음 단계를 따릅니다.
- UIView 콘센트를 만듭니다.
@IBOutlet var progressBar: UIView!
- 그런 다음 사용자 작업 후 너비 값을 늘리는 속성
var progressBarWidth: Int = your value
- Then for the increase/decrease of the progress
progressBar.frame.size.width = CGFloat(progressBarWidth)
- And finally in the IBACtion method I add
progressBarWidth += your value
for auto increase the width every time user touches a button.
Assigning questionFrame.frame.size.height= screenSize.height * 0.30
will not reflect anything in the view. because it is a get-only property. If you want to change the frame of questionFrame you can use the below code.
questionFrame.frame = CGRect(x: 0, y: 0, width: 0, height: screenSize.height * 0.70)
I know that there is already a solution to this question, but I found an alternative to this issue and maybe it could help someone.
I was having trouble with setting the frame of my sub view because certain values were referring to its position within the main view. So if you don't want to update your frame by changing the whole frame via CGRect, you can simply change a value of the frame and then update it.
// keep reference to you frames
var questionView = questionFrame.frame
var answerView = answerFrame.frame
// update the values of the copy
questionView.size.height = CGFloat(screenSize.height * 0.70)
answerView.size.height = CGFloat(screenSize.height * 0.30)
// set the frames to the new frames
questionFrame.frame = questionView
answerFrame.frame = answerView
참고URL : https://stackoverflow.com/questions/26706565/how-do-i-change-uiview-size
'Program Tip' 카테고리의 다른 글
git 로그를 텍스트 파일로 내보내려면 어떻게해야합니까? (0) | 2020.12.10 |
---|---|
MongoDB C # 드라이버-바인딩시 필드 무시 (0) | 2020.12.10 |
인증없이 Swagger URL에 액세스 할 수 있도록 Spring Security를 구성하는 방법 (0) | 2020.12.10 |
Oracle에서보기 란 무엇입니까? (0) | 2020.12.10 |
NULL을 먼저 표시 한 다음 가장 최근 날짜를 보여주는 ORDER BY DATE (0) | 2020.12.10 |