2013-03-07 97 views
0

我已將子類別UIView基本上包含UIPickerViewUIToolbar分類UIView在動畫幀後顯示不正確

當用戶在選取器中選擇一個特定的行時,我會在拾取器上添加一個UIImageView。但是,當我將UIView動畫到屏幕上時,此圖像不可見。如果我沒有動畫UIView那麼它會正確顯示。

我顯示UIImageView像這樣(在UIView):

- (void)showMailSetupPopover { 

    if (self.popoverMailSetupImageView == nil) { 

     UIImageView *popoverMailSetupImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"popover-mail-setup-addreminder"]]; 
     popoverMailSetupImageView.alpha = 0.0; 
     popoverMailSetupImageView.frame = CGRectMake(8, self.frame.origin.y + 65, popoverMailSetupImageView.bounds.size.width, popoverMailSetupImageView.bounds.size.height); 
     self.popoverMailSetupImageView = popoverMailSetupImageView; 
    } 

    [self addSubview:self.popoverMailSetupImageView]; 

    [UIView animateWithDuration:0.5 animations:^{ 

     self.popoverMailSetupImageView.alpha = 1.0; 

    } completion:^(BOOL finished) {}]; 
} 

這是我如何添加UIViewself.view

RMMessageTypePickerView *messageTypePickerView = [[RMMessageTypePickerView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 260) reminderMessageType:RMReminderMessageTypeText delegate:self]; 

self.messageTypePickerView = messageTypePickerView; 

[self.view addSubview:self.messageTypePickerView]; 

[UIView animateWithDuration:0.2 animations:^{ 

    self.messageTypePickerView.frame = messageTypePickerViewTargetFrame; 
    self.addReminderTableView.frame = addReminderTableViewTargetFrame; 

} completion:^(BOOL finished) { 

    if (firstShow) { 

     [self processSelectedMessageTypeRow:RMReminderMessageTypeText]; 
    } 
}]; 
+0

[self.view addSubview:self.messageTypePickerView]; - >將其放入動畫完成塊。 – Petar 2013-03-07 10:38:58

+0

@ pe60t0我認爲你完全錯了。如果他將在完成塊中添加視圖,那麼視圖的動畫移動將不可能 – 2013-03-07 11:21:09

+0

@Peter Warbo,你可以在你調用的地方添加代碼 - (void)showMailSetupPopover – 2013-03-07 11:25:20

回答

0

發現了問題,

取代

popoverMailSetupImageView.frame = CGRectMake(8, self.frame.origin.y + 65, popoverMailSetupImageView.bounds.size.width, popoverMailSetupImageView.bounds.size.height);

popoverMailSetupImageView.frame = CGRectMake(8, 65, popoverMailSetupImageView.bounds.size.width, popoverMailSetupImageView.bounds.size.height);

self.frame.origin.y是沒有必要的。