원형 uiview를 만드는 방법
-
18-09-2019 - |
문제
원인 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;
그래픽 호출이 필요하지 않습니다. 모서리 반경을 너비로 설정하기 만하면 시각적 인 객체에서 수행 할 수 있습니다. 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로 변경하십시오.
세트 Clip to Bounds
true (또는 그림은 원 너머로 확장됩니다) :
그것은 이제 인터페이스 빌더로 바로 그 자체로 반올림해야합니다. 너비와 높이를 동일한 값으로 설정하십시오. 그렇지 않으면 Zeppelin처럼 형성됩니다!
투명한 uiview (0의 배경 색상 알파)를 만들어야한다. 그런 다음 DrawRect에서 CoreGraphics 호출을 사용하여 원을 그립니다. 뷰의 레이어를 편집하고 코너 라디우스를 줄 수도 있습니다.