문제

원인 uiview 또는 uiimageview를 만들고 싶습니다. 또는 슬라이더 사용 크기와 Pickerview의 색상을 변경할 수있는 원입니다.

도움이 되었습니까?

해결책

적어도 임의의 크기의 원을 그리는 지름길을 보여줄 수 있습니다. OpenGL 없음, 코어 그래픽 도면이 필요하지 않습니다.

Quartzcore 프레임 워크를 가져와 액세스 할 수 있습니다 .cornerradius UIVIEW 또는 UIIMAGEVIEW의 속성.

#import <QuartzCore/QuartzCore.h>

또한 프로젝트의 프레임 워크 폴더에 수동으로 추가하십시오.

이 방법을 뷰 컨트롤러에 또는 필요한 곳에 추가하십시오.

-(void)setRoundedView:(UIImageView *)roundedView toDiameter:(float)newSize;
{
    CGPoint saveCenter = roundedView.center;
    CGRect newFrame = CGRectMake(roundedView.frame.origin.x, roundedView.frame.origin.y, newSize, newSize);
    roundedView.frame = newFrame;
    roundedView.layer.cornerRadius = newSize / 2.0;
    roundedView.center = saveCenter;
}

그것을 사용하려면 전달하십시오 uiimageview 그리고 직경. 이 예제는 "Circ"라는 uiimageview가 귀하의 서브 뷰로 추가되었다고 가정합니다. 보다. 그것은 있어야합니다 배경색 당신이 그것을 볼 수 있도록 설정하십시오.

circ.clipsToBounds = YES;
[self setRoundedView:circ toDiameter:100.0];

이것은 단지 처리합니다 uiimageviews 그러나 당신은 그것을 일반화 할 수 있습니다 uiview.

노트: iOS 7 이후 CliptoBounds는 예를 필요로합니다.

다른 팁

// For those looking to round the corners of an image view
imageView.layer.cornerRadius = imageView.bounds.size.width/2;
imageView.layer.masksToBounds = YES;

누군가가 아래보다 신속한 동등한 것을 찾고 있다면 답변입니다 (xcode7.2).

(이것은 작업 높이와 너비에 동일해야합니다.)

extension UIView {
    func makeCircular() {
        self.layer.cornerRadius = min(self.frame.size.height, self.frame.size.width) / 2.0
        self.clipsToBounds = true
    }
}

enter image description here

그래픽 호출이 필요하지 않습니다. 모서리 반경을 너비로 설정하기 만하면 시각적 인 객체에서 수행 할 수 있습니다. UI 요소

일부 의견에서 언급했듯이 @ibdesignable은 이제이를 훨씬 쉽게 만들어 주므로 인터페이스 빌더를 사용하여 둥근 UIIMAGEVIEW를 구성 할 수 있습니다.

먼저 이름이 지정된 클래스를 만듭니다 RoundedImageView.swift 이 코드를 붙여 넣으십시오.

import UIKit

@IBDesignable public class RoundedImageView: UIImageView {

    override public func layoutSubviews() {
        super.layoutSubviews()

        //hard-coded this since it's always round
        layer.cornerRadius = 0.5 * bounds.size.width
    }
}

interfacebuilder에서 uiimageview를 선택하고 클래스를 uiimageview에서 custom RoundeDimageView로 변경하십시오.

enter image description here

세트 Clip to Bounds true (또는 그림은 원 너머로 확장됩니다) :

enter image description here

그것은 이제 인터페이스 빌더로 바로 그 자체로 반올림해야합니다. 너비와 높이를 동일한 값으로 설정하십시오. 그렇지 않으면 Zeppelin처럼 형성됩니다!

enter image description here

투명한 uiview (0의 배경 색상 알파)를 만들어야한다. 그런 다음 DrawRect에서 CoreGraphics 호출을 사용하여 원을 그립니다. 뷰의 레이어를 편집하고 코너 라디우스를 줄 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top