【问题标题】:How to open image files using one view?如何使用一个视图打开图像文件?
【发布时间】:2011-08-01 16:55:19
【问题描述】:

我似乎无法在网上找到任何代码来自动切换视图。但我希望我的图像一个接一个地在视图中自动打开。有什么建议吗?


我想在每个视图中单独打开图像,并在查看当前视图时终止前一个视图。我不想使用任何幻灯片。希望大家多多指教。

【问题讨论】:

标签: iphone objective-c ios xcode


【解决方案1】:

在viewDidLoad中加入这一行(这一行是为你的项目的文档目录中保存图片的情况Dynamic):

    slideShowTimer=[NSTimer scheduledTimerWithTimeInterval: 3.0 target: self selector:@selector(changeImageSlide) userInfo: nil repeats:YES];

changeImageSlide 方法:

- (void) changeImageSlide
{
    totalNoOfImages=[copyOf_myGlobleArrayOfImageIds count];
    if (imageCounter>=totalNoOfImages-1) 
    {
        imageCounter=0;
    }
    NSString *str = [NSString stringWithFormat:@"%@.jpg",[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter]];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fullImgNm=[documentsDirectory stringByAppendingPathComponent:[NSString stringWithString:str]];
    //=(3*imageCounter+4)%25;
    [mainSlideShowImageView setImage:[UIImage imageWithContentsOfFile:fullImgNm]];
    [mainSlideShowImageView setTag:[[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter] intValue]];     
    imageCounter++;
}

使用以下方式(适用于您的图片在项目的资源文件夹中并且您已将它们添加到项目中的情况静态):

//MAIN SIDE SHOW TASK
//while fetching names from database need to impliment another mutable array ref:information provider
NSArray *imageNames=[[NSArray alloc] initWithObjects:@"1.jpg",
                     @"2.jpg",
                     @"3.jpg",
                     @"4.jpg",
                     @"5.jpg",
                     @"6.jpg",
                     @"7.jpg",
                     @"8.jpg",
                     @"9.jpg",
                     @"10.jpg",
                     @"11.jpg",
                     @"12.jpg",
                     @"13.jpg",
                     @"14.jpg",
                     @"15.jpg",nil];

int limit=[imageNames count];
NSMutableArray *tempNames=[[NSMutableArray alloc] init];
for (int i=0; i<limit; i++) {
    NSString *str= [NSString stringWithFormat:@"%@",[imageNames objectAtIndex:i]];
    [tempNames addObject:[UIImage imageNamed:(NSString *)str]];
}

NSArray *images=tempNames;
NSLog(@"name array=======%@",images);
mainSlideShowImageView.animationImages=images;
mainSlideShowImageView.animationDuration = 75.00; 
mainSlideShowImageView.animationRepeatCount = 0; //infinite
[mainSlideShowImageView startAnimating];
//MAIN SlIDE SHOW TASK COMPLETE 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多