簡體   English   中英

按下按鈕時的UIView動畫-首次嘗試時不可見

[英]UIView animation on button press - not visible on first try

我在水平放置的UIView中有一組三個UITableView,兩個屏幕在任何時候都可見,另一個在屏幕外。 我正在嘗試設置位置變化的動畫,在按下按鈕時,最左邊的桌子向屏幕外滑動到左邊,然后另兩個桌子滑過以填充位置。

我的問題是,如果我嘗試一次對多個表進行動畫處理,則第一次按下按鈕時什么也沒有發生。 但是在第二按時一切正常。 如果我僅嘗試對一張桌子進行動畫處理,則它可以在第一次按下時起作用。 我的按鈕處理程序代碼如下:

- (IBAction)buttonPressed:(id)sender{

    CGRect newUITableView1Frame = self.originalUITableView1Frame;
    newUITableView1Frame.origin.x = newUITableView1Frame.origin.x - newUITableView1Frame.size.width;    

    if(!makeSubButtonPressed){
        self.makeSubButtonPressed = YES;
        [self.makeSubButton setTitle:@"Choose Team Lineup" forState:UIControlStateNormal];

        [UIView animateWithDuration:0.5
                              delay:0.1
                            options:UIViewAnimationOptionCurveEaseOut
                         animations:^{
                             self.UITableView1.frame = newUITableView1Frame;
                             self.UITableView2.frame = originalUITableView1Frame;
                             self.UITableView3.frame = originalUITableView2Frame;
                         }
        completion:^(BOOL finished){NSLog(@"Animation Finished");}];
}

在ViewDidLoad方法中:

self.originalUITableView1Frame = self.UITableView1.frame;
self.originalUITableView2Frame = self.UITableView2.frame;

第一次按下時,始終在控制台上打印“ Animation Finished”,以便執行代碼。 我還為每個動畫嘗試了單獨的動畫塊,但是結果是相同的。

我不知道怎么了。 有什么建議么?

編輯:我可能應該添加,我為此使用情節提要和所有UITableViews添加在那里。

您在動畫塊中為第二張表設置了兩次幀,但沒有為第三張表設置幀。

在動畫塊中嘗試以下操作:

self.UITableView1.frame = newUITableView1Frame;
self.UITableView2.frame = originalUITableView1Frame;
self.UITableView3.frame = originalUITableView2Frame;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM