2015-01-12 87 views
0

我希望在出現視圖時從我的UITableview的底部動畫中獲取幻燈片。所以viewDidAppear了Methode裏面我創建了下面的動畫UITableViewCell中的UIButton在動畫顯示時從側面滑入UITableView

[UIView animateWithDuration:10.0f  // for testing purposes big value 
          delay:0.0f 
     usingSpringWithDamping:0.7f // 0...1 
      initialSpringVelocity:0.0f 
         options:UIViewAnimationOptionCurveEaseOut 
        animations:^{ 

         [tv_team setAlpha:1.0f]; 
         tv_teamsVerticalConstraint.constant = 0; 

         [self.view layoutIfNeeded]; 
        } 
        completion:^(BOOL finished) { 

        } 
    ]; 

該工程爲UITableView的本身完全沒有問題,但是我動態標籤和按鈕添加到每個UITableViewCell中,像這樣

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *cellIdentifier = @"teamCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    //if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    //} 

    [cell.contentView setBackgroundColor:[[ColorSchema sharedColorSchema] color_background]]; 
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

    UIView *vw_centered = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 70)]; 
    vw_centered.autoresizingMask = (
            UIViewAutoresizingFlexibleTopMargin | 
            UIViewAutoresizingFlexibleBottomMargin | 
            UIViewAutoresizingFlexibleLeftMargin | 
            UIViewAutoresizingFlexibleRightMargin 
            ); 
    [vw_centered setBackgroundColor:[[ColorSchema sharedColorSchema] color_darkerbackground]]; 
    [vw_centered.layer setCornerRadius:5.0f]; 
    [vw_centered setTag:1]; 

    //... more Labels 

// Button to change the teamMembers 
    UIButton *btn_setPlayers = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btn_setPlayers.frame = CGRectMake(340.0, 39.0, 120.0, 19.0); 
    [btn_setPlayers setBackgroundColor:[[ColorSchema sharedColorSchema] color_darkgray]]; 
    [btn_setPlayers setTag:indexPath.row]; 
    [btn_setPlayers.titleLabel setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:9.0]]; 
    [btn_setPlayers setTitleColor:[[ColorSchema sharedColorSchema] color_orangeSolid] forState:UIControlStateNormal]; 
    [btn_setPlayers setTitle:@"Change Team Members" forState:UIControlStateNormal]; 
    [btn_setPlayers addTarget:self action:@selector(changeTeamMembers:) forControlEvents:UIControlEventTouchUpInside]; 
    [btn_setPlayers.layer setCornerRadius:5.0f]; 
    [vw_centered addSubview:btn_setPlayers]; 

    [cell.contentView addSubview:vw_centered]; 

    return cell; 
} 

問題是,在創建的按鈕從左側滑入,直到它到達第二,第三,...單元的幀位置(不是第一個 - 可能是因爲那是原型單元格)

如何停止該動畫?

enter image description here

進出口運行的Xcode 6個IOS 8.1

+0

嗨。我用你的代碼做了一個簡單的項目,但沒有看到它。它可能與單元格的初始大小有關。我建議你製作一個帶有所有內部視圖的筆尖的自定義單元,並使用自動佈局。它更清潔並且可以防止錯誤,此外,您還可以在「awakeFromNib」中設置屬性,如顏色和樣式。嘗試一下... – oren

回答

0

您可以通過在performWithoutAnimation包裝的變化避免不必要的動畫:

[UIView performWithoutAnimation:^{ 
    // changes 
}]; 

因此,嘗試在其中的一個設置你的按鈕的框架。

+0

如果我將框架設置包含進去,按鈕本身被設置在正確的位置,但現在標題是動畫的(從中心放大),如果我也將設置標題設置放入該包裝中,變化,仍然從中心放大 – Markus

+0

嗯。不知道發生了什麼,但是我想在設置按鈕框後嘗試'[btn_setPlayers layoutIfNeeded]''。 –

+0

我同意那位建議在Interface Builder和Auto Layout中設置單元格的評論者。 –

相關問題