จัดการความสูงของ UIScrollView เพื่อเพิ่ม UIView อื่นด้านบน

ฉันมี UIScrollView ซึ่งฉันกำลังเพิ่มมุมมองย่อยซึ่งเป็น TimeLineView (UIView) เพื่อวัตถุประสงค์ในการแสดง ตอนแรกฉันก็ทำแบบเดียวกันและ TimeLineView ก็แสดงขึ้นมาโดยไม่มีปัญหาใด ๆ แต่ตอนนี้ฉันต้องการให้มี UIView เหนือ UIScrollView ซึ่งฉันสามารถแสดงข้อมูลบางอย่างเกี่ยวกับไทม์ไลน์ได้

ฉันจำเป็นต้องลดความสูงของ 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;
}

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือ


person keepsmiling    schedule 30.05.2012    source แหล่งที่มา
comment
ฉันไม่คิดว่าคุณจะต้องตั้งค่าความสูงของ UIView ให้พอดีกับมุมมองเลื่อน โปรดตรวจสอบความสูงของ UIView ในตัวสร้างอินเทอร์เฟซ คลิกที่กรอบการสมัคร เปิดตัวตรวจสอบแอตทริบิวต์ ตรวจสอบว่าแถบสถานะไม่มีหรือไม่ ถ้าไม่เช่นนั้นให้ตั้งค่าเป็นไม่มี ตรวจสอบค่าในตัวตรวจสอบขนาด กำหนดความสูงให้เหมาะสม ฉันหวังว่านี่อาจช่วยได้สักหน่อย   -  person Akhilesh Sharma    schedule 30.05.2012
comment
ขอบคุณที่ตอบกลับก่อน :) แต่สิ่งที่ฉันต้องการคือ UIView อื่นเหนือ UIScrollView ที่ฉันใช้งาน ในตอนแรก scrollview จะใช้พื้นที่เต็มหน้าจอของโปรแกรมจำลอง iphone ตอนนี้ฉันแค่ต้องการ UIView อื่นที่อยู่ด้านบน   -  person keepsmiling    schedule 30.05.2012
comment
คุณกำลังเพิ่ม UIView โดยทางโปรแกรมหรือไม่   -  person Akhilesh Sharma    schedule 30.05.2012
comment
เย้..ฉันกำลังเพิ่ม UIView โดยทางโปรแกรม   -  person keepsmiling    schedule 30.05.2012
comment
ใช่แล้ว คุณจะต้องจัดการความสูงด้วยตนเอง   -  person Akhilesh Sharma    schedule 30.05.2012


คำตอบ (1)


ใช่ คุณต้องเปลี่ยนแกน y และลดความสูงของ scrollview ตามความสูงของ UIView ของคุณ คุณต้องเปลี่ยนกรอบของ scrollview ของคุณดังต่อไปนี้หาก scrollview อยู่ต่ำกว่า UIView:

scrollView = [[UIScrollView จัดสรร] 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 ความสูง)];

โดยที่ UIViewFrame เป็นเฟรมของ UIView ของคุณ

person Nuzhat Zari    schedule 30.05.2012