操纵UIScrollView高度以在其上方添加另一个UIView

时间:2012-05-30 06:10:00

标签: iphone uiview uiscrollview height

我有一个UIScrollView,我在其中添加了一个子视图,它是一个TimeLineView(一个UIView)。用于显示;最初我只是做了同样的事情,TimeLineView显示没有任何问题。但现在我想在UIScrollView上方有一个UIView,我可以在其中显示有关时间轴的一些信息。

我是否需要降低UIScrollView的高度,以便UIView适应它上面的空间?如果是的话,我该怎么做?

如果还有其他方式......请告诉我。 我的所有初始实现如下:

in .h

@property (nonatomic, readonly) UIScrollView *scrollView;
@property (nonatomic, readonly) TimeLineView *timelineView;

in .m

@synthesize scrollView = scrollView;
@synthesize timelineView = timelineView;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self prepareCustomView];
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)decoder 
{    
    self = [super initWithCoder:decoder];
    if (self) {
        [self prepareCustomView];
    }
    return self;
}

- (void)prepareCustomView {
    // Initialization code

    // Add main scroll view
[self addSubview:self.scrollView];

    // Add timeline view inside scrollview
[self.scrollView addSubview:self.timelineView];


}


- (UIScrollView *)scrollView
{
    if (!scrollView) {
        scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, TOP_BAR_HEIGHT, self.bounds.size.width, self.bounds.size.height-TOP_BAR_HEIGHT-FOOTER_HEIGHT)];
        scrollView.contentSize = CGSizeMake(self.bounds.size.width,TIMELINE_HEIGHT);
        scrollView.scrollEnabled = TRUE;
        scrollView.backgroundColor =[UIColor whiteColor];
        scrollView.alwaysBounceVertical = TRUE;
    }
    return scrollView;
}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

是的,您必须更改y轴并将UWiew的高度降低Uview的高度。如果滚动视图位于UIView下方,则必须按如下方式更改滚动视图的框架:

scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f,UIViewFrame.size.height + UIViewFrame.origin.y,self.bounds.size.width,self.bounds.size.height-TOP_BAR_HEIGHT-FOOTER_HEIGHT-UIViewFrame .size.height)];

其中UIViewFrame是你的UIView的框架。