2009-02-27 24 views
64

Chế độ xem chỉ báo hoạt động hữu ích trong nhiều ứng dụng. Bất kỳ ý tưởng nào về cách thêm, kích hoạt và loại bỏ chế độ xem chỉ báo hoạt động trên iPhone?Cách sử dụng chế độ xem chỉ báo hoạt động trên iPhone?

Tất cả các phương pháp được hoan nghênh tại đây.

+0

tôi thấy [MBProgressHUD] (https://github.com/jdg/MBProgressHUD), đặt một chỉ báo phương thức tốt đẹp lên. Nó đã chết dễ thực hiện. – foz

Trả lời

121

Tạo:

spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
[spinner setCenter:CGPointMake(kScreenWidth/2.0, kScreenHeight/2.0)]; // I do this because I'm in landscape mode 
[self.view addSubview:spinner]; // spinner is not visible until started 

bắt đầu:

[spinner startAnimating]; 

Stop:

[spinner stopAnimating]; 

Khi bạn cuối cùng đã hoàn tất, hãy xóa spinner khỏi chế độ xem và nhả ra.

+0

Cảm ơn bạn Jane Sales –

+0

Làm thế nào để tự động xoay tâm xoay tròn? – itsazzad

+0

[spinner stopAnimating]; không ẩn tải. Tôi vẫn có thể xem hoạt ảnh tải. –

7

Tài liệu về điều này khá rõ ràng. Đó là lớp con UIView nên bạn sử dụng nó như bất kỳ chế độ xem nào khác. Để bắt đầu/dừng hoạt ảnh bạn sử dụng

[activityIndicator startAnimating]; 
[activityIndicator stopAnimating]; 
10

Hãy xem ứng dụng WordPress nguồn mở. Họ có một cửa sổ rất có thể sử dụng lại mà họ đã tạo để hiển thị loại "hoạt động đang diễn ra" hiển thị phía trên bất kỳ chế độ xem nào mà ứng dụng của bạn hiện đang hiển thị.

http://iphone.trac.wordpress.org/browser/trunk

Các tập tin mà bạn muốn bao gồm:

  • WPActivityIndicator.xib
  • RoundedRectBlack.png
  • WPActivityIndicator.h
  • WPActivityIndicator.m

Sau đó, để hiển thị nó sử dụng một cái gì đó như:

[[WPActivityIndicator sharedActivityIndicator] show]; 

Và ẩn với:

[[WPActivityIndicator sharedActivityIndicator] hide]; 
+2

Cảm ơn, chính xác những gì tôi đang tìm kiếm là tốt. Lưu ý rằng WPActivityIndicator đã được đổi tên thành (và được tái cấu trúc) thành WPProgressHUD (xem http://iphone.trac.wordpress.org/browser/trunk/Classes/WPProgressHUD.h). –

+0

sharedActivityIndicator rằng phương thức methos lớp không được tìm thấy trong liên kết của bạn. –

9

liên quan đến:

Hãy nhìn vào các ứng dụng mã nguồn mở WordPress. Họ có một cửa sổ rất có thể sử dụng lại mà họ đã tạo để hiển thị loại "hoạt động đang diễn ra" hiển thị phía trên bất kỳ chế độ xem nào mà ứng dụng của bạn hiện đang hiển thị.

lưu ý rằng nếu bạn sử dụng mã này, bạn PHẢI cung cấp TẤT CẢ mã nguồn cho ứng dụng của riêng bạn cho bất kỳ người dùng nào yêu cầu. Bạn cần phải biết rằng họ có thể quyết định đóng gói lại mã của bạn và bán nó trên cửa hàng. Tất cả điều này được cung cấp theo các điều khoản của Giấy phép Công cộng GNU (GPL).

Nếu bạn không muốn bị buộc phải mở mã nguồn, bạn không thể sử dụng bất kỳ thứ gì từ ứng dụng iphone wordpress bao gồm cửa sổ tiến trình hoạt động được tham chiếu, mà không buộc GPL áp dụng cho riêng bạn.

1

tôi nghĩ bạn nên sử dụng ẩn tốt hơn.

activityIndicator.hidden = YES 
2

Sử dụng Storyboard-

Create-

  • Đến main.storyboard (Điều này có thể được tìm thấy trong theProject Navigator ở phía bên tay trái của Xcode của bạn) và kéo và thả "Chế độ chỉ báo hoạt động" từ Thư viện đối tượng.

Activity Indicator View from Object Library

  • Đến file header và tạo ra một IBOutlet cho UIActivityIndicatorView-

    @interface ViewController : UIViewController 
    
        @property (nonatomic,strong) IBOutlet UIActivityIndicatorView *activityIndicatorView; 
    
    @end 
    
  • Thiết lập kết nối từ Outlets đến UIActivityIndicatorView.

bắt đầu:

Sử dụng đoạn mã sau khi bạn cần để bắt đầu chỉ số hoạt động sử dụng đoạn mã sau vào tập tin thực thi của bạn (.m) -

[self.activityIndicatorView startAnimating]; 

Stop:

Sử dụng mã sau đây khi bạn cần dừng chỉ báo hoạt động bằng cách sử dụng followi ng mã trong tập tin thực thi của bạn (.m) -

[self.activityIndicatorView stopAnimating]; 
0

Hoạt động chỉ 2 giây chương trình và đi đến trang tiếp theo

@property(strong,nonatomic)IBOutlet UIActivityIndicator *activityindctr; 

-(void)viewDidload { [super viewDidload];[activityindctr startanimating]; [self performSelector:@selector(nextpage) withObject:nil afterDelay:2];} 

-(void)nextpage{ [activityindctr stopAnimating]; [self performSegueWithIdentifier:@"nextviewcintroller" sender:self];} 
0
- (IBAction)toggleSpinner:(id)sender 
{ 
    if (self.spinner.isAnimating) 
    { 
     [self.spinner stopAnimating]; 
     ((UIButton *)sender).titleLabel.text = @"Start spinning"; 
     [self.controlState setValue:[NSNumber numberWithBool:NO] forKey:@"SpinnerAnimatingState"]; 
    } 
    else 
    { 
     [self.spinner startAnimating]; 
     ((UIButton *)sender).titleLabel.text = @"Stop spinning"; 
     [self.controlState setValue:[NSNumber numberWithBool:YES] forKey:@"SpinnerAnimatingState"]; 
    } 
} 
Các vấn đề liên quan