UIAactivity 크기를 변경할 수 있습니까?지표?
할당할 때 어떤 사이즈를 주든 고정 사이즈만 표시됩니다.그것을 늘리는 것이 가능합니까?
코드:
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:
CGRectMake(142.00, 212.00, 80.0, 80.0)];
[[self view] addSubview:activityIndicator];
[activityIndicator sizeToFit];
activityIndicator.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleBottomMargin);
activityIndicator.hidesWhenStopped = YES;
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
다음은 15px 폭의 활동 표시기를 생성합니다.
#import <QuartzCore/QuartzCore.h>
...
UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75);
[self addSubview:activityIndicator];
TechZen의 답변의 정서는 이해하지만 UIAactivity의 크기를 조정하는 것은 아니라고 생각합니다.상대적으로 적은 양의 지표는 실제로 Apple의 표준화된 인터페이스 관용구를 위반하는 것입니다. 활동 지표가 20px인지 15px인지는 사용자의 상황에 대한 해석을 바꾸지 않습니다.
스위프트 3.0 & 스위프트 4.0
self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)
사이즈는 스타일에 따라 정해집니다.그것은 표준화된 인터페이스 요소이기 때문에 API는 그것을 만지작거리는 것을 좋아하지 않습니다.
그러나 이에 대해 확장 변환을 수행할 수도 있습니다.그러나 그것이 시각적으로 어떤 영향을 미칠지는 확실하지 않습니다.
UI 설계 관점에서 볼 때 일반적인 표준화된 요소는 일반적으로 그대로 두는 것이 좋습니다.사용자는 특정 요소가 특정 크기로 나타나고 특정한 것을 의미한다고 배웠습니다.표준 모양을 변경하면 인터페이스 문법이 변경되고 사용자에게 혼란을 줍니다.
UIAactivity의 크기를 조정할 수 있습니다.지표.
CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f);
activityIndicator.transform = transform;
원래 사이즈는 1.0f 입니다.이제 그에 따라 크기를 늘리거나 줄입니다.
스위프트3
var activityIndicator = UIActivityIndicatorView()
activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
activityIndicator.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
let transform: CGAffineTransform = CGAffineTransform(scaleX: 1.5, y: 1.5)
activityIndicator.transform = transform
activityIndicator.center = self.view.center
activityIndicator.startAnimating()
self.view.addSubview(activityIndicator)
다음은 Swift 3.0과 함께 사용할 수 있는 확장 기능으로 0 스케일링(또는 금지할 값)을 방지합니다.
extension UIActivityIndicatorView {
func scale(factor: CGFloat) {
guard factor > 0.0 else { return }
transform = CGAffineTransform(scaleX: factor, y: factor)
}
}
40ppt(2x)까지 확장할 수 있습니다.
activityIndicatorView.scale(factor: 2.0)
다른 유용한 "CGAfineTransform" 트릭도 많이 있습니다.자세한 내용은 Apple Developer Library 참조를 참조하십시오.
행운을 빕니다.
당신이 할 수 있는 최선은whiteLarge
스타일.let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)
.
의 크기 증가UIActivityIndicatorView
에서는 이 사진에서 볼 수 있듯이 표시기의 크기를 적절하게 변경하지 않습니다.
활동Indicator.transform = CGAfineTransform (scale X: 1.75, y: 1.75);
이것은 지표의 크기를 변형시키는 데 도움이 되었습니다.
예, 이미 답변한 대로 UIAactivity의 가시적 크기변환 속성을 사용하여 표시기 보기를 변경할 수 있습니다.정확한 표시기 크기를 설정/얻기 위해 간단한 확장자를 추가했습니다.
extension UIActivityIndicatorView {
var imageSize: CGSize {
let imgView = subviews.first { $0 is UIImageView }
return imgView?.bounds.size ?? .zero
}
var radius: CGFloat {
get {
imageSize.width * scale / 2.0
}
set {
let w = imageSize.width
scale = (w == 0.0) ? 0 : newValue * 2.0 / w
}
}
var scale: CGFloat {
get {
// just return x scale component as this var has meaning only
// if transform of scale type, and x and y scales are same)
transform.a
}
set {
transform = CGAffineTransform(scaleX: newValue, y: newValue);
}
}
}
이 확장자를 사용하여 예를 들어 간단히 쓸 수 있습니다.
indicatorView.radius = 16.0
다른 보기에서 지시자의 정확한 간격을 UIAactivity로 설정해야 할 경우에도 유용합니다.표시기 보기의 프레임이 0입니다.
언급URL : https://stackoverflow.com/questions/2638120/can-i-change-the-size-of-uiactivityindicator
'programing' 카테고리의 다른 글
Python은 단일 토큰으로 Authorization 헤더를 전달하는 방법을 라이브러리에 요청합니다. (0) | 2023.07.16 |
---|---|
TypeScript에서 JSON 개체를 초기화하는 중 (0) | 2023.07.16 |
matplotlib에서 색상 막대 범위 설정 (0) | 2023.07.16 |
__init__()가 부모 클래스의 __init_()을 호출해야 합니까? (0) | 2023.07.16 |
파이썬에서 반복기를 청크(n개)별로 반복합니까? (0) | 2023.07.16 |