开发者

iPhone: How to scroll random height UIView in ScrollView?

I have ScrollView and UIView created in interface builder (but can as well be code). I want to add random amount of thumbnails (subviews) to UIView and be able to scroll it up-down if there are more than the screen can take. Hovewer, I can't get ScrollView to scroll.

Where and how do I resize UIView and add it as a subview of ScrollView?

When do I set contentSize of scrollView to make it 开发者_开发百科expand along with uiview? I tried creating fixed large contentSize but didn't work as well.

What properties in IB I might need to change to make it work?

I'd like to make the images in uiview clickable in next step.

I guess I could also make both view in code without IB. Just somehow can't get it to work.

Thanks in advance !


//declare base view

UIViewController *viewForLoadForm =[[UIViewController alloc] init];
viewForLoadForm.view.frame=CGRectMake(0, 0,screenSize.size.width,screenSize.size.height);
viewForLoadForm.view.backgroundColor=[UIColor blackColor];
[Manview.view addSubview:viewForLoadForm];

//declare scrollview and add to base view

UIScrollView *scrollview=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, screenSize.size.width,screenSize.size.height)];
scrollview.indicatorStyle=UIScrollViewIndicatorStyleBlack;
[scrollview setContentSize:CGSizeMake(screenSize.size.width,screenSize.size.height)];
scrollview.clipsToBounds = NO;
scrollview.scrollEnabled = YES;
scrollview.pagingEnabled = NO;              scrollview.showsVerticalScrollIndicator =NO;
scrollview.alwaysBounceVertical= YES;
[viewForLoadForm.view addSubview:scrollview];

//Add your controls to scrollview that s image view or something which is needed to display

.........your control's code (textbox,imageview etc)

//took last control's y postion and set your K

float k=Last control's y position +100;(some thing which ll be decide scroll size)

// reassign the scrollview height
    [scrollview setContentSize:CGSizeMake(screenSize.size.width,k)];

use above line for scroll view size adjustment at run time.

screenSize.size.width is 320 here


code snippet,

- (void) createThumbView
{
    float y_axis = Set y axis;

    int x = 0;

    int totalImgs = total images;

    int tempCnt = 0;

    for (int i = 0; i < totalImgs;)
    {
        float x_axis = set x axis;

        int loopCount = 0;

        if (totalImgs - tempCnt >= (no of images in row))
        {
            loopCount = (no of images in row);
        }
        else
        {
            loopCount = totalImgs % (no of images in row);
        }

        for (int j = 0; j < loopCount; j++)
        {
            MasksData *mData = [masksList objectAtIndex:x];

            UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
            btn.frame = CGRectMake(x_axis, y_axis, width, height);
            [btn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.png",mData.bgImage]] forState:UIControlStateNormal];
            btn.backgroundColor = [UIColor  clearColor];
            btn.tag = x;
            [scroll View addSubview:btn];

            //photoCount++;
            x_axis += width + some space;

            tempCnt++;
            i++;
            x++;
        }

        y_axis += height + some space;

        scroll View.contentSize = CGSizeMake(320.0, y_axis);
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜