2014-12-18 17 views
5

Tôi đang cố gắng thêm UIActivityIndicatorView vào UIAlertView nhưng không thể hoàn thành. Tôi đã thấy các bài đăng về triển khai này và phát hiện ra rằng nó chỉ hoạt động đối với các phiên bản dưới iOS7.Thêm Chỉ số Hoạt động vào UIAlertView

Dưới đây là đoạn code tôi đã cố gắng ...

var alert: UIAlertView = UIAlertView(title: "Title", message: "Please wait...", delegate: nil, cancelButtonTitle: "Cancel"); 

var loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(0.0, 0.0, 10.0, 10.0)) as UIActivityIndicatorView 
loadingIndicator.center = self.view.center; 
loadingIndicator.hidesWhenStopped = true 
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray 
loadingIndicator.startAnimating(); 

alert.addSubview(loadingIndicator); 
alert.show(); 

Có điều gì điều cụ thể để làm cho iOS7 trở lên để thực hiện điều này?

+2

Bạn cũng có thể quan tâm trong lớp này: https://github.com/goktugyil/CozyLoadingActivity – Esqarrouth

Trả lời

23

thử mã này !!

var alert: UIAlertView = UIAlertView(title: "Title", message: "Please wait...", delegate: nil, cancelButtonTitle: "Cancel"); 


     var loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(50, 10, 37, 37)) as UIActivityIndicatorView 
     loadingIndicator.center = self.view.center; 
     loadingIndicator.hidesWhenStopped = true 
     loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray 
     loadingIndicator.startAnimating(); 

     alert.setValue(loadingIndicator, forKey: "accessoryView") 
     loadingIndicator.startAnimating() 

     alert.show(); 

Tôi hy vọng tôi đã giúp bạn

+0

Perfect! Cảm ơn. –

+0

Luôn sẵn lòng giúp đỡ –

+0

một giải pháp rất ngắn, rất tốt mà không đề xuất sử dụng nhóm. bạn xứng đáng có một nơi đặc biệt trên thiên đàng. –

0

Đối với những người sử dụng Objective-C. Giải pháp của tôi kết thúc tốt đẹp các UIActivityIndicatorView với một cái nhìn lớn hơn để lề đến các cạnh của UIAlertView không phải là quá nhỏ.

#import "UIAlertView+ActivityIndicator.h" 

@implementation UIAlertView (ActivityIndicator) 

+ (UIAlertView *)alertViewWithActivityIndicator:(NSString *)title delegate:(id<UIAlertViewDelegate>)delegate; 
{ 
    UIAlertView *a = [[UIAlertView alloc] initWithTitle:title 
               message:nil 
               delegate:delegate 
             cancelButtonTitle:nil 
             otherButtonTitles:nil]; 

    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 
    UIActivityIndicatorView *aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    aiv.translatesAutoresizingMaskIntoConstraints = NO; 
    [v addSubview:aiv]; 
    [v addConstraint:[NSLayoutConstraint constraintWithItem:aiv 
                attribute:NSLayoutAttributeCenterX 
                relatedBy:NSLayoutRelationEqual 
                toItem:v 
                attribute:NSLayoutAttributeCenterX 
               multiplier:1.0 
                constant:0]]; 
    [v addConstraint:[NSLayoutConstraint constraintWithItem:aiv 
                attribute:NSLayoutAttributeCenterY 
                relatedBy:NSLayoutRelationEqual 
                toItem:v 
                attribute:NSLayoutAttributeCenterY 
               multiplier:1.0 
                constant:0]]; 
    [aiv startAnimating]; 
    [a setValue:v forKey:@"accessoryView"]; 

    return a; 
} 

@end 
1

Câu trả lời được chấp nhận trong Swift 3:

var alert: UIAlertView = UIAlertView(title: "Title", message: "Please wait...", delegate: nil, cancelButtonTitle: "Cancel"); 


    let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x:50, y:10, width:37, height:37)) 
    loadingIndicator.center = self.view.center; 
    loadingIndicator.hidesWhenStopped = true 
    loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray 
    loadingIndicator.startAnimating(); 

    alert.setValue(loadingIndicator, forKey: "accessoryView") 
    loadingIndicator.startAnimating() 

    alert.show(); 
+1

UIAlertView không được chấp nhận trong iOS 9.0 – cmii

Các vấn đề liên quan