滚动 - 从图像创建缩略图

时间:2012-04-16 15:45:59

标签: iphone objective-c ios uiscrollview

有人可以查看如何修改Scrolling Project,以便显示一张图像,其他图片部分显示在左侧和右侧吗?就像移动页面管理器时的移动Safari一样...这是关键,这样用户就知道如果向右滚动会有更多图像。 两种方法均来自滚动项目。

设置SCROLLVIEW的方法:

ViewDidLoad {

self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];

// 1. setup the scrollview for multiple images and add it to the view controller
//
// note: the following can be done in Interface Builder, but we show this in code for clarity
[scrollView1 setBackgroundColor:[UIColor blackColor]];
[scrollView1 setCanCancelContentTouches:NO];
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView1.clipsToBounds = YES;        // default is NO, we want to restrict drawing within our scrollview
scrollView1.scrollEnabled = YES;

// pagingEnabled property default is NO, if set the scroller will stop or snap at each photo
// if you want free-flowing scroll, don't set this property.
scrollView1.pagingEnabled = YES;

// load all the images from our bundle and add them to the scroll view
NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

    // setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
    CGRect rect = imageView.frame;
    rect.size.height = kScrollObjHeight;
    rect.size.width = kScrollObjWidth;
    imageView.frame = rect;
    imageView.tag = i;  // tag our images for later use when we place them in serial fashion
    [scrollView1 addSubview:imageView];
    [imageView release];
}

[self layoutScrollImages];  // now place the photos in serial layout within the scrollview
}

设置布局的方法:

- (void)layoutScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [scrollView1 subviews];

// reposition all image subviews in a horizontal serial fashion
CGFloat curXLoc = 0;
for (view in subviews)
{
    if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
    {
        CGRect frame = view.frame;
        frame.origin = CGPointMake(curXLoc, 0);
        view.frame = frame;

        curXLoc += (kScrollObjWidth);
    }
}

// set the content size so it can be scrollable
[scrollView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollView1 bounds].size.height)];
}

1 个答案:

答案 0 :(得分:1)

在我以前的应用程序中,我创建了图像厨房视图,我在滚动视图上放置了一些自定义按钮,因此用户可以在点击该按钮时看到完整图像。

这里是代码希望它会帮助你

        UIScrollView *Sview = [[UIScrollView alloc] 
                      initWithFrame:[[UIScreen mainScreen] bounds]];

int row = 0;
int column = 0;
for(int i = 0; i < self.data.getCustomers.count; ++i) {

     customerToEdit = [self.data.getCustomers objectAtIndex:i];


     NSURL* imgUrl = [NSURL URLWithString:@"your image url array objects"];

    UIImage* thumb = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];

    //UIImage *thumb = [_thumbs objectAtIndex:i];

    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];

    button.frame = CGRectMake(column*100+24, row*80+10, 64, 64);

    [button setImage:thumb forState:UIControlStateNormal];

    [button addTarget:self 
               action:@selector(buttonClicked:) 
     forControlEvents:UIControlEventTouchUpInside];

    button.tag = i; 

    [Sview addSubview:button];

    if (column == 2) {
        column = 0;
        row++;
    } else {
        column++;
    }

}

[view setContentSize:CGSizeMake(320, (row+1) * 80 + 10)];   
self.view = view; // or u can  [self.view addsubview:Sview];