2015-07-22 186 views
2

我正在製作這種類型的屏幕。 Tabs
我用3 UIButton並以編程方式給它們邊框。小紅線是UIView。我提供了一個約束UIView等寬趨勢按鈕。 現在我的問題是,當用戶點擊下一個按鈕時,這個UIView應該移動到下一個按鈕。

視圖控制器是600x600和下一個按鈕是在200x0因此,如果我將UIView的值更改爲200將硬編碼,它會根據屏幕大小進行更改。我希望它是完美的,不知道任何其他方式。

UPDATE:
我使用AutoLayout所以要爲此我用[self.buttonBottomView setTranslatesAutoresizingMaskIntoConstraints:YES];,當我運行應用程序的按鈕被搞砸像在屏幕。我在按鈕上應用了一些constraintsenter image description here將UIView從一個標籤移到另一個標籤

+1

你可以嘗試隱藏和顯示按鈕的紅線底部。這將很容易 –

+0

工程只是完美的,但沒有動畫。謝謝:d –

+0

你可以嘗試UIView的過渡還添加動畫 –

回答

0

改變你UIView的框架。

view.frame = CGRectMake(0+buttonWidth*i, y, width, height); 

我是指數是0 趨勢,1 被球迷和2 您的規則而成。

此外,當您更改視圖的框架時,它一次只顯示在一個按鈕上。

2

您可以使用NSLayoutConstraint,當您點擊下一個按鈕時更改它的LeadingConstaint

代碼:

- (void)changeSelectedByTapView:(UIView *)tapView { 
    _currentSelectedView = tapView; 
    self.lineImageViewLeadingConstaint.constant = tapView.frameX; 
    self.lineImageViewWidthConstaint.constant = tapView.width; 
    [UIView animateWithDuration:0.5f animations:^{ 
     [self.lineImageView.superview layoutIfNeeded]; 
    }]; 
} 
+0

您的限制必須錯誤,紅線(查看)級別應該與您的按鈕相同。 –

相關問題