수색…


소개

UIButton : UIControl 은 터치 이벤트를 가로 채고 태핑되었을 때 대상 메시지에 작업 메시지를 보냅니다. 버튼의 제목, 이미지 및 기타 모양 속성을 설정할 수 있습니다. 또한 각 단추 상태에 대해 다른 모양을 지정할 수 있습니다.

비고

버튼 유형

버튼의 유형은 기본 모양과 동작을 정의합니다. 단추를 만든 후에는 단추의 유형을 변경할 수 없습니다. 가장 일반적으로 사용되는 버튼 유형은 사용자 정의 유형과 시스템 유형이지만 적절한 경우 다른 유형을 사용합니다

  • UIButtonTypeCustom

    No button style.
    
  • UIButtonTypeSystem

    A system style button, such as those shown in navigation bars and toolbars.
    
  • UIButtonTypeDetailDisclosure

    A detail disclosure button.
    
  • UIButtonTypeInfoLight

    An information button that has a light background.
    
  • UIButtonTypeInfoDark

    An information button that has a dark background.
    
  • UIButtonTypeContactAdd

    A contact add button.
    

사용자 정의 버튼을 만들 때 (즉, 사용자 정의 유형의 버튼 인 경우) 버튼의 프레임은 초기에 (0, 0, 0, 0)으로 설정됩니다. 인터페이스에 단추를 추가하기 전에 프레임을 더 적절한 값으로 업데이트해야합니다.

UIButton 만들기

프레임에서 UIButton을 초기화 할 수 있습니다.

빠른

let button = UIButton(frame: CGRect(x: x, y: y, width: width, height: height)

목표 C

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)];

특정 유형의 UIButton은 다음과 같이 만들 수 있습니다.

빠른

let button = UIButton(type: .Custom) 

목표 C

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

여기서 typeUIButtonType .

enum UIButtonType : Int {
    case Custom
    case System
    case DetailDisclosure
    case InfoLight
    case InfoDark
    case ContactAdd
    static var RoundedRect: UIButtonType { get }
}

제목 설정

빠른

button.setTitle(titleString, forState: controlState)

목표 C

[button setTitle:(NSString *) forState:(UIControlState)];

기본 제목을 "Hello, World!"로 설정하려면

빠른

button.setTitle("Hello, World!", forState: .normal)

목표 C

[button setTitle:@"Hello, World!" forControlState:UIControlStateNormal];

제목 색상 설정

//Swift
button.setTitleColor(color, forControlState: controlState)

//Objective-C
[button setTitleColor:(nullable UIColor *) forState:(UIControlState)];

제목 색을 파란색으로 설정하려면

//Swift
button.setTitleColor(.blue, for: .normal)

//Objective-C
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]

가로로 정렬하는 콘텐츠

빠른

//Align contents to the left of the frame
button.contentHorizontalAlignment = .left

//Align contents to the right of the frame
button.contentHorizontalAlignment = .right

//Align contents to the center of the frame
button.contentHorizontalAlignment = .center

//Make contents fill the frame
button.contentHorizontalAlignment = .fill

목표 C

//Align contents to the left
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

//Align contents to the right
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;

//Align contents to the center
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

//Align contents to fill the frame
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;

제목 라벨 가져 오기

기본 제목 레이블이 존재할 경우이를 사용하여 가져올 수 있습니다.

빠른

var label: UILabel? = button.titleLabel

목표 C

UILabel *label = button.titleLabel;

예를 들어 제목 레이블의 글꼴을 설정하는 데 사용할 수 있습니다

빠른

button.titleLabel?.font = UIFont.boldSystemFontOfSize(12)

목표 C

button.titleLabel.font = [UIFont boldSystemFontOfSize:12];

UIButton 비활성화

버튼을 사용하여 비활성화 할 수 있습니다.

빠른

myButton.isEnabled = false

목표 -C :

myButton.enabled = NO;

버튼이 회색으로 변합니다.

여기에 이미지 설명을 입력하십시오.

비활성화되었을 때 버튼 모양을 변경하지 않으려면 adjustsImageWhenDisabledfalse / NO

코드를 통해 UIButton에 액션 추가하기 (프로그래밍 방식으로)

버튼에 메서드를 추가하려면 먼저 액션 메서드를 만듭니다.

목표 -C

-(void)someButtonAction:(id)sender {
  // sender is the object that was tapped, in this case its the button.
    NSLog(@"Button is tapped"); 
}

빠른

func someButtonAction() {
    print("Button is tapped")
}

이제이 액션 메서드를 버튼에 추가하려면 다음 코드 줄을 작성해야합니다.

목표 C

[yourButtonInstance addTarget:self action:@selector(someButtonAction) forControlEvents:UIControlEventTouchUpInside];

빠른

yourButtonInstance.addTarget(self, action: #selector(someButtonAction), forControlEvents: .TouchUpInside)

ControlEvents 매개 변수의 경우 ENUM UIControlEvents 의 모든 구성원이 유효합니다.

글꼴 설정

빠른

myButton.titleLabel?.font =  UIFont(name: "YourFontName", size: 20)

목표 C

myButton.titleLabel.font = [UIFont fontWithName:@"YourFontName" size:20];

단추에 메서드 첨부

버튼에 메서드를 추가하려면 먼저 액션 메서드를 만듭니다.

목표 -C

-(void) someButtonAction{
    NSLog(@"Button is tapped");

}

빠른

func someButtonAction() {
        print("Button is tapped")
    }

이제이 액션 메서드를 버튼에 추가하려면 다음 코드 줄을 작성해야합니다.

목표 C

[yourButtonInstance addTarget:self action:@selector(someButtonAction) forControlEvents:UIControlEventTouchUpInside];

빠른

yourButtonInstance.addTarget(self, action: #selector(someButtonAction), forControlEvents: .touchUpInside)

ControlEvents의 경우, ENUM UIControlEvents 의 모든 구성원이 유효합니다.

텍스트와 글꼴을 기반으로 UIButton의 크기를 엄격하게 가져옵니다.

글꼴을 기반으로 UIButton의 텍스트의 정확한 크기를 가져 오려면 intrinsicContentSize 함수를 사용하십시오.

빠른

button.intrinsicContentSize.width

목표 -C

button.intrinsicContentSize.width;

이미지 설정

빠른

button.setImage(UIImage(named:"test-image"), forState: .normal)

목표 C

[self.button setImage:[UIImage imageNamed:@"test-image"] forState:UIControlStateNormal];

다중 제어 상태

여러 개의 UIControlStates 에 대해 이미지를 설정할 수도 있습니다 (예 : Selected 상태 및 Highlighted 상태에 대해 동일한 이미지를 설정하는 경우).

빠른

button.setImage(UIImage(named:"test-image"), forState:[.selected, .highlighted])

목표 C

[self.button setImage:[UIImage imageNamed:@"test-image"] forState:UIControlStateSelected|UIControlStateHighlighted];


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow