سؤال

أيا كان الحجم الذي أعطيه له أثناء التخصيص ، فإنه يظهر الحجم الثابت فقط. هل من الممكن زيادته؟

شفرة:

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".

ومع ذلك ، ربما يمكنك القيام بتحويل التحجيم عليه. لست متأكدًا من كيفية تأثير ذلك بصريًا.

فقط من منظور تصميم واجهة المستخدم ، من الأفضل عادة ترك هذه العناصر الموحدة المشتركة وحدها. تم تعليم المستخدم أن بعض العناصر تظهر بحجم معين وأنها تعني أشياء محددة. تغيير المظهر القياسي يغير قواعد الواجهة ويخلط بين المستخدم.

نصائح أخرى

ما يلي سيقوم بإنشاء مؤشر النشاط 15 بكسل على نطاق واسع:

#import <QuartzCore/QuartzCore.h>

...

UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
activityIndicator.transform = CGAffineTransformMakeScale(0.75, 0.75);
[self addSubview:activityIndicator];

على الرغم من أنني أفهم مشاعر إجابة Techzen ، لا أعتقد أن ضبط حجم UiActivityIndicator بمقدار صغير نسبيًا هو حقًا انتهاك لعلاج الواجهة الموحدة لـ Apple - سواء كان مؤشر النشاط هو 20 بكسل أو 15 بكسل لن يغير تفسير المستخدم ما يحدث.

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. الآن يمكنك زيادة وتقليل الحجم وفقًا لذلك.

سويفت 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)

إليك امتداد يعمل معه سويفت 3.0 ويتحقق لمنع 0 من التحجيم (أو أي قيمة تريد حظرها):

extension UIActivityIndicatorView {
    func scale(factor: CGFloat) {
        guard factor > 0.0 else { return }

        transform = CGAffineTransform(scaleX: factor, y: factor)
    }
}

نسميها مثل SO لتوسيع نطاق 40 نقطة (2x):

activityIndicatorView.scale(factor: 2.0)

هناك أيضًا الكثير من الحيل المفيدة "cgaffinetrans" التي يمكنك اللعب بها. لمزيد من التفاصيل ، يرجى الاطلاع على مرجع مكتبة مطوري Apple:

http://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/cgaffinetransform/reference/reference.html

حظا طيبا وفقك الله!

أفضل ما يمكنك القيام به هو استخدام whiteLarge نمط.let i = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge).

زيادة حجم UIActivityIndicatorView لا يغير حجم المؤشر المناسب ، كما ترون في هذه الصور.small indicator "large" indicator

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top