할당하는 동안 크기에 관계없이 고정 크기 만 표시합니다. 그것을 늘릴 수 있습니까?
암호:
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;
답변
크기는 스타일에 따라 고정됩니다. 표준화 된 인터페이스 요소이므로 API가 조작하는 것을 좋아하지 않습니다.
그러나 아마도 스케일링 변환을 수행 할 수 있습니다. 그러나 그것이 시각적으로 어떻게 영향을 미칠지 확실하지 않습니다.
UI 디자인 관점에서 보면 일반적으로 이러한 공통적 인 표준화 된 요소는 그대로 두는 것이 좋습니다. 사용자는 특정 요소가 특정 크기로 나타나고 특정 사물을 의미한다고 배웠습니다. 표준 모양을 변경하면 인터페이스 문법이 변경되고 사용자가 혼란스러워집니다.
답변
다음은 15px 너비의 활동 표시기를 만듭니다.
#import <QuartzCore/QuartzCore.h>
...
UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75);
[self addSubview:activityIndicator];
TechZen의 답변에 대한 감정은 이해하지만 UIActivityIndicator의 크기를 비교적 적은 양으로 조정하는 것은 실제로 Apple의 표준화 된 인터페이스 관용구를 위반하는 것이라고 생각하지 않습니다. 활동 표시기가 20px이든 15px이든 사용자의 해석을 바꾸지 않습니다. 무슨 일이 일어나고 있는지.
답변
Swift 3.0 및 Swift 4.0
self.activityIndi.transform = CGAffineTransform(scaleX: 3, y: 3)
답변
UIActivityIndicator의 크기를 조정할 수 있습니다.
CGAffineTransform transform = CGAffineTransformMakeScale(1.5f, 1.5f);
activityIndicator.transform = transform;
원래 크기는 1.0f입니다. 이제 그에 따라 크기를 늘리거나 줄입니다.
답변
Swift3
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)
}
}
40 점 (2x)으로 확장하려면 다음과 같이 호출하십시오.
activityIndicatorView.scale(factor: 2.0)
답변
또한 사용할 수있는 다른 유용한 “CGAffineTransform”트릭도 많이 있습니다. 자세한 내용은 Apple Developer Library 참조를 참조하십시오.
행운을 빕니다!