2017-05-23 2 views
1

StoryBoard에서 UIStackView를 설계했으며 높이 제한을 70으로 설정 한 2 UIbutton을 추가했습니다. 내 stackview가 세로 채우기로 설정되어 있고 컨트롤러의 크기에 맞게 스토리 보드에 일부 제약 조건이 설정되어 있습니다. 전망.프로그래밍 방식으로 UIStackView 채우기

stackView 및 UIbutton에서 콘센트를 추가했습니다. 내가 스택보기

@IBOutlet weak var Btn1: UIButton! 

@IBOutlet weak var myStackView: UIStackView! 

var accounts = [Account]() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    Btn1.setTitle("Name", for: .normal) 

    let Btn3 = UIButton(frame: CGRect(x: 0, y: 110, width: 100, height: 50)) 
    Btn3.setTitle("Btn3", for: .normal) 
    Btn3.heightAnchor.constraint(equalToConstant: 70).isActive = true 
    myStackView.addArrangedSubview(Btn3) 

에 프로그래밍 방식으로 세 번째있는 UIButton을 추가하려고하지만 Btn3 결코

답변

1

음을 나타납니다, 당신의 배경 색상은 기본 흰색라고 가정하면, 버튼은 그냥 하드에있을 것입니다 참조;). 다른 말로하면 제목 색이 흰색입니다.

약간의 색상을 설정하십시오 : 당신이 init(frame:)를 사용하여 버튼을 만들 경우

let Btn3 = UIButton(type: .system) 

, 사용자 정의를 얻을 : 당신이 약 tintColor 신경 경우

Btn3.backgroundColor = UIColor.yellow 
Btn3.setTitleColor(UIColor.red, for: .normal) 

또한 시스템 버튼으로 만들 수 있습니다 버튼과 the tintColor documentation의 내용은 다음과 같습니다.

사용자 정의 유형의 버튼에는 기본 효과가 없습니다. 맞춤 검색 버튼의 경우 직접 tintColor 과 관련된 동작을 구현해야합니다.

또한

init(frame:)를 사용하여 버튼을 초기화 할 때, 오히려 (레이아웃이 어쨌든 스택보기에서 관리하는) 의미없는 프레임을 지정하는 대신, 나는 .zero를 사용하는 것이 좋습니다 것 : 대한

let Btn3 = UIButton(frame: .zero) 

그리고 마지막 메모를 신속한 명명 규칙 :

사례 규칙을 따르십시오. 유형 및 프로토콜 이름은 UpperCamelCase입니다. 나머지는 모두 lowerCamelCase입니다. btn3 또는 loginButton 변수를 제안하면서

그래서 Btn3는 유형을 제안한다. Swift API 디자인 지침의 "Follow case conventions"을 참조하십시오.

+0

확실히 바보 같은 오류! 물론 낙타의 경우에는 문제가 없으므로 예제 코드를 입력 할 때 엉망이되었습니다. – user3239711

+0

너 자신에게 너무 열심히하지 마라. 나는 모두가 "공주님"의 공평한 분배를 가지고 있다고 생각한다. 순간 :). 이런 경우에는 Xcode의 "Debug View Hierarchy"기능을 추천합니다. 또한 문제를 해결 한 경우이를 대답으로 받아 들여야합니다. – thm

관련 문제