UILabel表现得很奇怪

时间:2013-03-05 16:34:02

标签: iphone ios uiscrollview uipagecontrol autoresizingmask

我需要滑动UIPageControlUIScrollView才能更改以UILabel为标题,UITextView为内容的视图。

人像视图中,UILabelUITextView都很好,除了一个小问题。我textAlignment的{​​{1}}是中心还是正确,它始终显示在手中观点。

现在到风景视图。这是大多数问题发生的地方。

这就是它的样子,

enter image description here

至于代码,

UILabel

1 个答案:

答案 0 :(得分:1)

首先,使用[label sizeToFit];会减少Label的宽度,这就是它始终位于左侧的原因。这就是它应该做的,如果你不想减小它的大小并将标签的宽度保持在页面的宽度,那么就不要使用它。

发生滚动页面问题是因为在调整滚动视图大小时滚动的内容不会更改。您需要做的是,当方向发生变化时(可以在(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration中):

  • 设置新的框架尺寸后,调整滚动视图的内容大小(页面现在有更小的高度和更大的宽度)。

  • 将子视图的框架更改为新方向(即,为您的页面指定滚动视图的新边界并重新分配原始x。)

  • 如果需要,请调整每个页面中的内容

  • 滚动到您当前正在观看的页面:

代码(来自我所拥有的寻呼机组件,可能需要调整一些东西让你工作):

-(void) scrollToCurrentPage {
    CGRect frameCurrent =  scrollview.frame;
    frameCurrent.origin.x = _currentPageNumber*frameCurrent.size.width;
    frameCurrent.origin.y = 0;
    //_currentPage is a reference to the page that was being watched before rotation
    _currentPage.frame = frameCurrent; 
    [_container scrollRectToVisible: frameCurrent animated: NO];
}