2013-02-06 122 views
0

我正在給UIScrollView添加一個UIView。這將是一個水平滾動視圖,我想爲它添加多個視圖。顯示的代碼只是爲了簡化一個滾動視圖。滾動視圖在我的故事板中,我添加的視圖是一個.xib文件。該視圖被添加,但它是我設置的大小的兩倍。所以它是640乘以244.滾動視圖佔據了我的視圖的底部122像素。而.xib是320×122。我只是在我的.xib的頂部有一個大按鈕,所以我可以告訴我添加它時發生了什麼。唯一的問題是,我添加到scrollview的.xib是我想要的兩倍大。我究竟做錯了什麼??爲什麼我的子視圖尺寸是我想要的尺寸的兩倍?

讓我知道是否需要更多信息。謝謝!

BADAchievements *temporaryView = (BADAchievements *)[[[NSBundle mainBundle] loadNibNamed:@"BADAchievements" owner:self options:nil] objectAtIndex:0]; 

    CGRect f = temporaryView.frame; 
    f.size.width = 320; 
    temporaryView.frame = f; 

    CGSize s = self.achievementScrollView.contentSize; 
    s.width = f.origin.x + f.size.width; 
    [self.achievementScrollView setContentSize:s]; 

    [self.achievementScrollView addSubview:temporaryView]; 

回答

0

嘗試做這樣的一些變化:

BADAchievements *temporaryView = (BADAchievements *)[[[NSBundle mainBundle] loadNibNamed:@"BADAchievements" owner:self options:nil] objectAtIndex:0]; 
CGRect f = temporaryView.frame; 
CGRect f = CGRectMake(f.origin.x, f.origin.y, 320, f.size.height); 
temporaryView.frame = f; 
0

我搞砸與它一點點。所以顯然代碼是好的,我只需要採取自動佈局,我改變了UIView的自動調整,所以它不能水平或垂直拉伸。感謝您的回覆。

1

你把你的代碼放在哪裏,即你的視圖控制器的哪個方法?

=>您的temporaryView和/或achievementScrollView的最終框架不一定是由您在NIB中指定的尺寸定義的!幀/界限可以稍後重新調整大小(即,當視圖加載過程完成並且所有子視圖都被佈置時)。

因此,您應該檢查您的子視圖的autoresizingMaskautoresizesSubviews屬性是否設置正確。 (即自動調整大小)

查看View Programming Guide for iOS自動調整大小等

相關問題