покажите UIAlertView, когда в приложении идет покупка - PullRequest
3 голосов
/ 28 апреля 2010

Я добавил UIAlertView, который имеет UIActivityIndicatior в качестве подпредставления для моего приложения. Это предупреждение отображается только тогда, когда покупка в процессе. Я разместил свое предупреждение таким образом в моем StoreObserver:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
   for (SKPaymentTransaction *transaction in transactions)
    {

       switch (transaction.transactionState)
       {
        case SKPaymentTransactionStatePurchasing:
                [self stillPurchasing]; // this creates an alertView and shows
                break;

        case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];         
                break;

        case SKPaymentTransactionStateFailed:           
               [self failedTransaction:transaction];
               break;

        case SKPaymentTransactionStateRestored:
              [self restoreTransaction:transaction];
              break;

        default:
            break;
       }        
    }

}

- (void) stillPurchasing {

UIAlertView *alert  = [[UIAlertView alloc]initWithTitle: @"In App Purchase" message: @"Processing your purchase..." delegate: nil cancelButtonTitle: nil otherButtonTitles: nil];
self.alertView = alert;
[alert release];

 UIActivityIndicatorView *ind = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
 self.indicator = ind;
 [ind release];
 [self.indicator startAnimating];

 [self.alertView addSubview: self.indicator];
 [self.alertView show];
}

Когда я нажимаю кнопку «Купить», этот UIAlertView отображается вместе с моим UIActivityIndicator. Но когда транзакция завершает функцию alertView, она все еще находится в верхней части представления, и индикатор был единственным, который был удален. Мой вопрос был, как я должен выпустить alertView? Или где / Когда я должен выпустить это.

Я добавил эти команды, чтобы освободить мои alertView и Indicator в следующих случаях: case SKPaymentTransactionStatePurchased: case SKPaymentTransactionStateFailed: case SKPaymentTransactionStateRestored:

[self.indicator stopAnimating];
[self.indicator removeFromSuperview];
[self.alertView release];
[self.indicator release]; 

Я только добавил alertView, чтобы показать, что покупка еще продолжалась. Буду благодарен за любые предложения по созданию отзывов пользователей.

Спасибо

1 Ответ

2 голосов
/ 28 апреля 2010

Чтобы удалить вид предупреждения, используйте

[alertView dismissWithClickedButtonIndex:0 animated:YES];
...