2013-08-26 50 views
3

我有一個使用自定義UITableViewCell的tableview。單元格包含需要在單元格中右對齊的UILabel。無法使用約束來對齊視圖

這是一個iPad應用程序。我設計的自定義單元格默認情況下適合縱向(768寬度)。問題是,當應用程序旋轉到橫向方向時,UILabel不會停留在右側。我甚至測試過,以確保單元本身正確伸展到橫向的寬度。

無論我做什麼,它似乎只想對齊左側。在IB中的約束條件中,我選擇「追蹤空間到超視圖」,但它似乎沒有做任何事情。 IB自動將水平空間(651)設置爲偏離左側。我無法刪除這個約束。

這真的很難做,或者我錯過了一些非常明顯的東西?

+0

您是在代碼還是在IB中設置約束? Autolayout在嗎? – CaptJak

+0

@CaptJak,IB只在這一點上。是的,約束被打開。其他限制正常工作。 –

+0

因此,如果您給該標籤的單元格後面的空格以及特定的寬度,是否無法將約束刪除到左側? – rdelmar

回答

0

[以上這樣的細胞IBOutlet中]從IOS /用戶界面/空

1.增加新文件。 2.從對象中添加tableview單元格並在其中添加標籤。 告訴上司拉布勒標籤1加設置右對齊(如展下圖)

[1]: http://i.stack.imgur.com/8AzJH.png 

現在,在您的tableview委託方法添加下面一行

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    NSString *cellid [email protected]"Cellid"; 

    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:cellid]; 
    if(cell==nil){ 

     cell =[[[NSBundle mainBundle] loadNibNamed:@"cell" owner:self options:nil] objectAtIndex:0]; 
     //[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid]; 

    } 
    UILabel *celllabel = (UILabel*)[cell viewWithTag:1]; 
    celllabel.text [email protected]"Test label alignment"; 
    return cell; 
} 

這是完全爲我工作。