2017-11-14 13 views
0

그래서 Xcode의 스토리 보드에서 만든 코드를 나중에 코드에서 편집하고 싶습니다.스위프트 4 - 음표 번호가 frame.size.height 인 편집

answerE.frame.size.height = -200 
이 문제는 음수에서 비롯

, 나는 높이가 부정적이되도록 레이블이 위를 "성장"할 : 나는 내가 수행하여 높이를 편집하고 수직 막대 같은 것을 시뮬레이션 할 원래 위치에서 ... 나는 버튼 누름에 대한 간단한 작업으로 코드에 줄을 표시하지만 줄을 실행할 때마다 레이블이 "위로"이동하고 결국 3 ~ 4 회의 클릭이 화면 밖으로 나옵니다. 나는 그 높이를 편집하고 싶습니다. 올바른 방법은 무엇이며, 무엇이 잘못 되었습니까? 내가 옳다 경우

label.frame.size.height = -CGFloat(Double(x)/Double(y) * (200)) 
+0

왜 처음부터 음수가되어야합니까? 제로가 아니겠습니까? –

답변

0

, 결과를 얻으려면.

첨자, 후행, 아래쪽 및 고정 높이 제약 조건을 추가하고 IBOutlet을 높이 제약 조건에 연결합니다. 수행하려는 이벤트에서 높이 제한 조건의 상수 값을 변경하십시오.

+0

당신은 맞습니다. 그것은 또한 가능한 솔루션입니다. 제가 받아 들일 수있는 답변을 1 개만 선택할 수 있습니다. 귀하의 솔루션 또한 정말 좋습니다. – Viktor1926

+0

이것은 의도 한대로 작동 한 솔루션입니다. 다른 하나는 (원점과 높이를 모두 사용하여) 생산 문제를 일으키고있었습니다. 처음 실행했을 때 적용되지 않았습니다. – Viktor1926

0

, 당신은 레이블이 같은 하단 모서리를 유지, 높이를 얻기 원하지만, 위쪽 가장자리가 위로 이동 : 코드

내 정확한 라인입니다.

이 작업을 수행하려면 frame.size.height를 동일한 양으로 변경하면서 해당 배치 (및 상단 가장자리)가 원점에 의해 결정되므로 frame.ize.height를 변경하면서 frame.origin.y를 변경해야합니다. 그래서 어쩌면 당신은 스토리 보드에 원하는, 어디에 배치, 그것을 제로 높이을 다음 x로 '성장'으로 할 때 :

당신이 제약 조건을 사용하지 왜 스토리 보드에 레이블을 추가 한 경우
label.frame.size.height = label.frame.height + x 
label.frame.origin.y = label.frame.origin.y - x