2014-12-26 68 views
0

我的任務非常簡單 - 只需在自定義UIView內顯示垂直滾動文本即可。 我有一個UIScrollView與一個UITextView在其中的容器。稍後需要容器來添加更多項目。我用IB(XIB文件)來添加自動佈局約束像圖所示:UITextView橫向延伸,但不是垂直內部UIScrollView

Screenshot

但我看到的一切是:

Simulator

而且它:-(

水平滾動我試過設置contentSize的UIScrollView:

  • 在initWithCoder,didMoveToSuperview,willMoveToSuperview =無效
  • 在自定義方法中,從主viewcontroller調用=完全不滾動,我看到相同的圖片。

非常感謝!

編輯:文本視圖和容器視圖的內置大小設置爲「佔位符」。我知道我應該限制ContainerView的寬度,但它應該適用於所有屏幕尺寸和方向,因此在代碼中設置寬度IMO會比設置約束更差。

回答

1

是啊!我找到了解決方案!

如果有人面臨同樣的問題:

您應該添加左邊和右邊的約束不UIScrollView的,但UIScrollView中的上海華盈(以超上海華)。

不幸的是,這不能在IB做,但你可以在代碼中做到這一點:

[self addConstraint:[NSLayoutConstraint constraintWithItem:self.view 
    attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual 
    toItem:self.containerView attribute:NSLayoutAttributeLeft 
    multiplier:1.0 constant:-30]]; 
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.view 
    attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual 
    toItem:self.containerView attribute:NSLayoutAttributeRight 
    multiplier:1.0 constant:30]]; 

哪裏self.containerView是視圖內UIScrolllView和self.view是視圖的UIScrollView

所以:

您將垂直限制爲UIScrollView水平限制爲頂級視圖