2011-08-25 99 views
0

我想創建具有一個UILabel作爲元素水平滾動視圖,通過做在viewDidLoad中的以下內容:不能添加子視圖的UIScrollView

for(int index=0; index < [self.category count]; index++) 
    { 
     UILabel *label = [[UILabel alloc] init]; 
     label.text = [self.category objectAtIndex:index]; 
     label.textColor = [UIColor blackColor]; 
     CGSize maximumLabelSize = CGSizeMake(100,9999); 
     CGSize expectedLabelSize = [[self.category objectAtIndex:index] sizeWithFont:label.font       
             constrainedToSize:maximumLabelSize 
              lineBreakMode:UILineBreakModeWordWrap]; 
     label.frame = CGRectMake(5+xOffset, 0, expectedLabelSize.width, 40); 

     self.scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,110); 
     [self.scrollView addSubview:label]; 

     xOffset += 170; 
    } 

不過,我什麼都看不到,當我在模擬器中運行應用程序,我在這裏錯過了什麼?很確定UIScrollView通過IBOutlet連接,我知道文本存在,因爲我試圖通過NSLog打印出來

更新: 也如何檢查哪個UILabel被點擊?我想知道這是好..

+0

是的..我剛剛發佈標籤後,將其添加到subview.so我需要autoresizingMask的scrollView? – adit

+0

你的autoresizingMask實際上工作 – adit

+0

移動我的評論給一個答案,所以你可以接受它:) – darvids0n

回答

0

如果您使用框架定位標籤,您還應該設置autoresizingMask以確定您是否基於縱向佈局進行定位,但是是否橫向測試應用,您的標籤不會自動定位到新的位置界限。此外,請確保autorelease這些標籤,否則您將泄漏內存。

+0

爲什麼不工作,如果我將其更改爲UIButton – adit

+0

「UIButton」對「UILabel」可能具有不同的默認設置。確保已將'hidden'設置爲'NO',正確設置'frame',正確設置'autoresizingMask',並且如果您使用的是自定義按鈕,則默認情況下它沒有圖像,因此它看起來不可見。如果你想要一個默認的按鈕外觀,你需要調用'[UIButton buttonWithType:UIButtonTypeRoundedRect];' – darvids0n

0

expectedLabelSize計算似乎調整height,留下width在100。當您設置UILabel你只是用這個寬度的frame

1

我想你在運行for循環之前沒有初始化xOffset = 0。所以它正在取一個垃圾值,然後執行xOffset + = 170;指令。

所以請初始化xOffset = 0;

+0

我其實,只是沒有shpw在這裏 – adit

+0

超,,,,,其工作很好 – Srinivas

相關問題