source

단추 모서리를 둥글게 하는 방법

lovecheck 2023. 4. 17. 21:58
반응형

단추 모서리를 둥글게 하는 방법

저는 직사각형 이미지(jpg)를 가지고 있는데 xcode로 둥근 모서리가 있는 버튼의 배경을 채우고 싶습니다.

나는 다음과 같이 썼다.

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];

다만, 이 어프로치로 얻을 수 있는 버튼은, 모서리가 둥글게 되어 있지 않습니다.원래의 이미지와 똑같이 보이는 평범한 직사각형입니다.버튼을 나타내는 둥근 모서리가 있는 이미지를 얻는 방법은 무엇입니까?

감사합니다!

저는 UITextArea에서 다음 솔루션을 시도했습니다.이 솔루션은 UIButton에서도 사용할 수 있을 것으로 기대하고 있습니다.

먼저 이 파일을 .m 파일로 Import합니다.

#import <QuartzCore/QuartzCore.h>

그리고 나서 당신의 안에loadView메서드 다음 행 추가

    yourButton.layer.cornerRadius = 10; // this value vary as per your desire
    yourButton.clipsToBounds = YES;

이 런타임 속성을 통해 달성할 수 있습니다.

여기에 이미지 설명 입력

커스텀 버튼을 만들 수 있습니다.스크린샷을 첨부해 주세요.

주의해 주십시오.

실행 시 속성의 테두리 색상을 변경하는 경우 다음 지침을 따릅니다.

  1. CALayer 카테고리 클래스 생성

  2. 일렬로

    @property(nonatomic, assign) UIColor* borderIBColor;
    
  3. m 파일:

    -(void)setBorderIBColor:(UIColor*)color {
        self.borderColor = color.CGColor;
    }
    
    -(UIColor*)borderIBColor {
        return [UIColor colorWithCGColor:self.borderColor];
    }
    

이제 테두리 색상 확인 스크린샷을 설정합니다.

갱신된 회답

감사해요.

한계 모서리 반지름까지 밀어 원을 얻습니다.

    self.btnFoldButton.layer.cornerRadius = self.btnFoldButton.frame.height/2.0;

여기에 이미지 설명 입력

버튼 프레임이 정사각형인 경우 프레임은 중요하지 않습니다.높이 또는 프레임.너비. 그렇지 않으면 둘 중 가장 큰 것을 사용하세요.

DCKit이라는 내 도서관을 확인해 보는 게 좋을 거야.스위프트의 최신 버전에 쓰여 있어요.

Interface Builder에서 둥근 모서리 버튼/텍스트 필드를 직접 만들 수 있습니다.

DCKit: 둥근 버튼

또한 유효성이 있는 텍스트 필드, 테두리가 있는 컨트롤, 점선 테두리, 원 및 헤어라인 뷰 등 다양한 쿨한 기능을 갖추고 있습니다.

UIButton* closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 90, 35)];
//Customise this button as you wish then
closeBtn.layer.cornerRadius = 10;
closeBtn.layer.masksToBounds = YES;//Important

QuartCore 프레임워크가 기존 프로젝트에 없는 경우 Import하고 Import합니다.#import <QuartzCore/QuartzCore.h>viewcontroller.m의

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect]];
CGRect frame = CGRectMake(x, y, width, height); // set values as per your requirement
button.layer.cornerRadius = 10;
button.clipsToBounds = YES;

첫 번째 설정 폭=100 및 높이=100/버튼

목표 C 솔루션

YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;

Swift 4 솔루션

YourBtn1.layer.cornerRadius = YourBtn1.Frame.size.width/2
YourBtn1.layer.borderColor = UIColor.black.cgColor
YourBtn1.layer.borderWidth = 1.0

내 코드를 시험해봐.여기서 텍스트 색상, 배경 색상, 모서리 반지름 등과 같은 UIButton의 모든 속성을 설정할 수 있습니다.

extension UIButton {
    func btnCorner() {
        layer.cornerRadius = 10
        clipsToBounds = true
        backgroundColor = .blue
    }
}

이제 이렇게 전화하세요.

yourBtnName.btnCorner()

여기에 이미지 설명 입력

목표 C:

submitButton.layer.cornerRadius = 5;
submitButton.clipsToBounds = YES;

Swift의 경우:

submitButton.layer.cornerRadius = 5
submitButton.clipsToBounds = true

둥근 모서리를 한 모서리나 두 모서리만 원하는 경우...이 투고를 읽다:

[ObjC] – 모서리가 둥근 UIButton - http://goo.gl/kfzvKP

XIB/Storyboard 서브 클래스입니다.쓰기 코드 없이 테두리를 가져오고 설정합니다.

Swift의 경우:

button.layer.cornerRadius = 10.0

Swift 3용으로 갱신되었습니다.

UIButton 모서리를 둥글게 만들기 위해 사용되는 코드:

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height

Swift 4 업데이트

나는 또한 많은 옵션을 시도했지만 나의 UIButton 라운드를 궁지에 몰아넣지 못했다.모서리 반지름 코드를 추가했습니다.viewDidLayoutSubviews()문제를 해결했습니다.

func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        anyButton.layer.cornerRadius = anyButton.frame.height / 2
    }

또한 다음과 같이 cornerRadius를 조정할 수 있습니다.

func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        anyButton.layer.cornerRadius = 10 //Any suitable number as you prefer can be applied 
    }

(버튼처럼) 테두리를 설정하는 대체 답변은 여기에 있습니다.사용자 정의 유형 UIButton의 직사각형 테두리를 설정하는 방법

iOS SWIFT 4의 경우

button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;

뷰의 버튼에 콘센트 연결 및 didSet 기능을 사용할 수 있습니다.

 @IBOutlet weak var button: UIButton!{
        didSet {
            button.layer.cornerRadius = 5;
            button.layer.masksToBounds = true;
        }
    }

언급URL : https://stackoverflow.com/questions/5047818/how-to-round-the-corners-of-a-button

반응형