亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS開發基礎知識--碎片14

2019-11-14 18:52:43
字體:
來源:轉載
供稿:網友

1:Zip文件壓縮跟解壓,使用ZipArchive

創建/添加一個zip包ZipArchive* zipFile = [[ZipArchive alloc] init];//次數得zipfilename需要一個完整得路徑,例如***/Documents/demo.zip[zipFile CreateZipFile2:@"zipfilename"]; //有兩種可選得方式進行創建壓縮包,帶密碼和不帶密碼的[[zipFile CreateZipFile2:@"zipfilename" PassWord:@"your password"];//接下來就是將需要壓縮的文件添加到這個壓縮包中//這里第一個參數需要完整的路徑,例如:***/Documents/a.txt  newname是指文件在壓縮包中的名字,不需要路徑,只是一個名稱[zipFile addFileToZip:@"fullpath of the file" newname:@"new name of the file without path"];//如果需要將多個文件進行壓縮,即壓縮文件夾,重復addFileToZip方法即可[zipFile CloseZipFile2]; 解壓zip包:ZipArchive* zipFile = [[ZipArchive alloc] init];[zipFile UnzipOpenFile:@"zip file name"]; //同樣,對應的就有兩種打開zip包的方式,帶密碼和不帶密碼[zipFile UnzipOpenFile:@"zip file name" Password:@"password" ];//壓縮包釋放到的位置,需要一個完整路徑 [zipFile UnzipFileTo:@"output path" overwrite:YES];[zipFile UnzipCloseFile];[zipFile release];//記得釋放

 

1. 壓縮:ZipArchive可以壓縮多個文件,只需要把文件一一addFileToZip即可.ZipArchive* zip = [[ZipArchive alloc] init];NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;NSString* l_zipfile = [documentpath stringByAppendingString:@"/test.zip"] ; NSString* image1 = [documentpath stringByAppendingString:@"/image1.jpg"] ;NSString* image2 = [documentpath stringByAppendingString:@"/image2.jpg"] ;        BOOL ret = [zip CreateZipFile2:l_zipfile];ret = [zip addFileToZip:image1 newname:@"image1.jpg"];ret = [zip addFileToZip:image2 newname:@"image2.jpg"];if( ![zip CloseZipFile2] )  {     l_zipfile = @"";  } 2. 解壓縮:ZipArchive* zip = [[ZipArchive alloc] init];NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;  //路徑地址要注意 NSString* l_zipfile = [documentpath stringByAppendingString:@"/test.zip"] ;NSString* unzipto = [documentpath stringByAppendingString:@"/test"] ;if( [zip UnzipOpenFile:l_zipfile] ) {   BOOL ret = [zip UnzipFileTo:unzipto overWrite:YES];   if( NO==ret )   {   }   [zip UnzipCloseFile]; }

2:UITapGestureRecognizer傳值

UIImageView *imageView =[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];    imageView.image=[UIImageimageNamed:@"filter_laozhaopian_a.png"];    imageView.tag = 10000;  //可以通過這樣來給下邊的點擊事件傳值    imageView.userInteractionEnabled = YES;    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(UesrClicked:)];    [imageView addGestureRecognizer:singleTap];    [self.view addSubview:imageView];- (void)UesrClicked:(UITapGestureRecognizer *)recognizer{   NSLog(@"%d",(recognizer.view.tag - 1000));} 

 3:自定義self.navigationItem.titleView視圖

UIView *titleView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, KTitleViewHeight)];        //最新定義左邊的按鍵    UIButton *leftItemButton=[UIButton buttonWithType:UIButtonTypeCustom];    leftItemButton.frame=CGRectMake(0, 0, KLeftItemButtonWidth, KLeftItemButtonHeight);    [leftItemButton setBackgroundImage:[UIImage imageNamed:@"mapMarkNormal"] forState:UIControlStateNormal];    [leftItemButton setBackgroundImage:[UIImage imageNamed:@"mapMarkSelected"] forState:UIControlStateHighlighted];    [leftItemButton addTarget:self action:@selector(leftButtonAction) forControlEvents:UIControlEventTouchUpInside];    [titleView addSubview:leftItemButton];    [leftItemButton mas_makeConstraints:^(MASConstraintMaker *make) {        make.centerY.equalTo(titleView);        make.left.equalTo(titleView.mas_left).with.offset(5);        make.size.equalTo(CGSizeMake(KLeftItemButtonWidth, KLeftItemButtonHeight));    }];        UILabel *titleLabel=[UILabel new];    titleLabel.textAlignment=NSTextAlignmentCenter;    titleLabel.font=[UIFont systemFontOfSize:14];    titleLabel.text=@"廈山中華公園廣場";    [titleView addSubview:titleLabel];    [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {        make.centerY.equalTo(titleView);        make.left.equalTo(titleView.mas_left).with.offset((SCREEN_WIDTH-KTitleViewTitleWidte-10)/2);    }];        UIButton *downButton=[UIButton new];    [downButton setImage:[UIImage imageNamed:@"FileDownload"] forState:UIControlStateNormal];    [titleView addSubview:downButton];    [downButton mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.equalTo(titleView.mas_right).with.offset(-2);        make.centerY.equalTo(titleView);        make.size.equalTo(CGSizeMake(KTitleViewButtonWidth, KTitleViewButtonHeight));    }];        UILabel *PRoLabel=[UILabel new];    proLabel.font=[UIFont systemFontOfSize:10];    proLabel.textColor=[UIColor colorWithHexString:KWitTourism_APPTextColor];    proLabel.textAlignment=NSTextAlignmentRight;    proLabel.text=@"正在下載";    [titleView addSubview:proLabel];        [proLabel mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.equalTo(downButton.mas_left).with.offset(-5);        make.centerY.equalTo(titleView);        make.size.equalTo(CGSizeMake(KTitleViewLabelWidth, KTitleViewLabelHeight));    }];        self.navigationItem.titleView=titleView;

4:實現無限滾動的uiscrollview

對滾動的圖片數組頭尾各增加一張,頭則在其前面增加一張尾部的,尾部則插入一張第一張;并在滾動事件中進行處理,改變其位置;主體代碼如下(若不自寫也可以找相應插件,已封裝):/** *  @author wujunyang, 15-06-05 13:06:12 * *  @brief  頭部滾動視圖布局 */-(void)setupScrollView{    int imgCount=self.imgdatalist.count;        //如果沒有值時 用一張默認的圖片替換顯示    if (imgCount==0) {        UIImageView *featureImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"thirdEmpty"]];        featureImageView.frame=self.headerImageView.frame;        [self.headerImageView addSubview:featureImageView];    }    else{        //實際的圖片個數        _actualImgNum=self.imgdatalist.count;        //為實現無限滾動 首先在第一個前面插入一個元素 此元素為最后一個        [self.imgdatalist insertObject:[self.imgdatalist objectAtIndex:([self.imgdatalist count]-1)] atIndex:0];        //在第后一個增加一個原先的第一個 由于上面已被插入一個值 所以原先的第一個變成第二個 所以此處為1        [self.imgdatalist addObject:[self.imgdatalist objectAtIndex:1]];        //增加后的個數 用于處理定義滾動視圖內容的總寬度        int imagDataListCount=self.imgdatalist.count;        _scrollView=[[UIScrollView alloc]init];        _scrollView.frame=self.headerImageView.frame;                for (int i=0; i<self.imgdatalist.count; i++) {            AroundImgBean* aroundimgbean=[self.imgdatalist objectAtIndex:i];            // 獲取圖片            NSString *featureImageName = aroundimgbean.aroundimgurl;            UIImageView *featureImageView = [[UIImageView alloc] init];            [featureImageView sd_setImageWithURL:[NSURL URLWithString:featureImageName] placeholderImage:[UIImage imageNamed:@"thirdEmpty"]];                        // 設置圖片尺寸位置            CGFloat featureWidth = SCREEN_WIDTH;            CGFloat featureHeight = self.headerImageView.frame.size.height;            CGFloat featureX = SCREEN_WIDTH * i;            CGFloat featureY = 0;            featureImageView.frame = CGRectMake(featureX, featureY, featureWidth, featureHeight);            [_scrollView addSubview:featureImageView];        }                // 設置scrollView功能屬性        _scrollView.userInteractionEnabled = YES;        _scrollView.bounces=NO;        _scrollView.scrollEnabled = YES; // 支持滾動        _scrollView.contentSize = CGSizeMake(self.headerImageView.frame.size.width * imagDataListCount, 0); // 只需要水平滾動        _scrollView.pagingEnabled = YES; // 支持分頁        _scrollView.showsHorizontalScrollIndicator = NO; // 隱藏水平滾動條                // 設置代理        _scrollView.delegate = self;                // 添加        [self.headerImageView addSubview:_scrollView];    }}//滾動事件- (void)scrollViewDidScroll:(UIScrollView *)myscrollView {    if ([myscrollView isEqual:_scrollView]) {    // 四舍五入,讓圖片滾動超過中線的時候改變頁碼    if (self.imgdatalist.count>0) {        CGFloat pageWidth = _scrollView.frame.size.width;        int page = floor((_scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;        _currentPageIndex=page;        //當前頁數要是沒有超過實際的值時        if (_currentPageIndex<_actualImgNum) {            _imageCount=[NSString stringWithFormat:@"%d/%d",_currentPageIndex+1,_actualImgNum];        }        else        {            _imageCount=[NSString stringWithFormat:@"%d/%d",1,_actualImgNum];        }                self.imageLabel.text=_imageCount;    }    else    {        _imageCountView.hidden=YES;        _imageLabel.hidden=YES;    }    }}/** *  @author wujunyang, 15-06-05 11:06:06 * *  @brief  滾動事件處理 無限滾動 修改滾動的當前位置 *  @param myscrollView <#myscrollView description#> */- (void)scrollViewDidEndDecelerating:(UIScrollView *)myscrollView{    if ([myscrollView isEqual:_scrollView]) {        if (_currentPageIndex==0) {                        [_scrollView setContentOffset:CGPointMake(([self.imgdatalist count]-2)*myscrollView.frame.size.width, 0)];        }        if (_currentPageIndex==([self.imgdatalist count]-1)) {                        [_scrollView setContentOffset:CGPointMake(myscrollView.frame.size.width, 0)];        }    }}

 


上一篇:ios開發學習筆記(1)

下一篇:Objective-C

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
不卡av在线播放| 久久久国产一区| 日韩欧美在线看| 色一情一乱一区二区| 欧美午夜片在线免费观看| 欧美精品激情视频| 久久久人成影片一区二区三区| 久久深夜福利免费观看| 久久国产天堂福利天堂| 精品久久久久久国产| 欧美日韩国产123| 91精品国产99| 亚洲深夜福利在线| 国产精品美女在线| 久久久精品久久久久| 欧美精品一本久久男人的天堂| 国产aaa精品| 亚洲电影免费观看高清完整版| 久久精品视频导航| 亚洲最大成人免费视频| 欧美激情久久久久| 欧美日韩激情美女| 精品久久久久久中文字幕| 亚洲美女自拍视频| 国产精品91在线观看| 久久精品视频导航| 2019日本中文字幕| 国产69精品久久久久9| 欧美亚洲日本网站| 亚洲欧美精品在线| 欧美成人午夜激情| 欧美一级黄色网| 精品无人区太爽高潮在线播放| 91欧美精品成人综合在线观看| 国产97在线播放| 亚洲人成在线免费观看| 欧美亚洲日本黄色| 国产精品久久久久影院日本| 亚洲色图50p| 欧美视频在线免费看| 日本一区二区在线播放| 日韩国产欧美区| 亚洲社区在线观看| 久久久久久免费精品| 欧美成人激情视频免费观看| 欧美疯狂性受xxxxx另类| 最近2019好看的中文字幕免费| 久久影视电视剧免费网站清宫辞电视| 欧美成人精品一区| 国产在线日韩在线| 日韩最新中文字幕电影免费看| 中文字幕欧美国内| 最近2019中文字幕一页二页| 3344国产精品免费看| 一区二区av在线| 亚洲男人天堂手机在线| 俺也去精品视频在线观看| 91精品国产综合久久香蕉最新版| 欧美成人精品一区二区三区| www欧美日韩| www.日本久久久久com.| 亚洲第一页中文字幕| 国产美女主播一区| 国产欧美在线观看| 欧美精品久久久久久久久久| 91精品国产综合久久香蕉的用户体验| 欧美疯狂性受xxxxx另类| 欧美在线观看www| 亚洲国产精久久久久久久| 欧美综合国产精品久久丁香| 国产一区深夜福利| 26uuu亚洲国产精品| 亚洲iv一区二区三区| 欧美国产精品日韩| 国产视频一区在线| 精品精品国产国产自在线| 国内精品久久久久伊人av| 亚洲人成电影网站色xx| 亚洲人成电影网站色| 国产不卡视频在线| 精品高清一区二区三区| 精品亚洲va在线va天堂资源站| 日本伊人精品一区二区三区介绍| 欧美在线精品免播放器视频| 中文字幕欧美专区| 欧美极品第一页| 亚洲欧美综合另类中字| 国产精品欧美一区二区| 国产又爽又黄的激情精品视频| 精品久久久久久久久久久久| 欧美日韩国产区| 欧美成人黑人xx视频免费观看| 欧美影院久久久| 久久视频在线播放| 久久中文字幕视频| 成人淫片在线看| 成人伊人精品色xxxx视频| 国产精品久久久久久五月尺| 国产99视频在线观看| 亚洲一级一级97网| 播播国产欧美激情| 91av视频在线观看| 成人性教育视频在线观看| 久久久久久91香蕉国产| 日韩av在线网址| 中文字幕日韩欧美在线| 日韩国产欧美区| 2019亚洲日韩新视频| 久久伊人精品天天| 国产精品久久久久免费a∨| 久久精品国产91精品亚洲| 清纯唯美亚洲综合| 91成人在线播放| 成人妇女淫片aaaa视频| 欧美精品一区二区三区国产精品| 久久久亚洲精品视频| 欧美电影在线观看网站| 国产精品美女久久久久久免费| 欧美超级乱淫片喷水| 福利视频第一区| 中文欧美在线视频| 欧美日韩高清区| 国产欧美欧洲在线观看| 亚洲成成品网站| 久久免费精品日本久久中文字幕| 亚洲最新中文字幕| 日韩国产精品一区| 国产成人精品最新| 国产v综合v亚洲欧美久久| 久久这里只有精品视频首页| 久久99久久亚洲国产| 国产午夜精品美女视频明星a级| 成人在线激情视频| 91免费精品国偷自产在线| 久久国产一区二区三区| 午夜精品美女自拍福到在线| 亚洲激情中文字幕| 日韩av在线影院| 国产不卡av在线免费观看| 精品成人乱色一区二区| 欧美日韩高清在线观看| 成人久久精品视频| 久久综合久久美利坚合众国| 精品久久久久久久久久久久久| 国产免费一区二区三区在线观看| 精品久久久国产精品999| 日本精品视频在线观看| 九九久久久久99精品| 欧美成人黑人xx视频免费观看| 精品美女永久免费视频| 欧美成人激情在线| xxxxxxxxx欧美| 国产精品免费一区豆花| 91社影院在线观看| 97精品国产97久久久久久免费| 欧美肥婆姓交大片| 久久深夜福利免费观看| 91免费精品视频| 精品久久久久国产| 国产精品久久久久久久久久久久| 日韩人体视频一二区| 国产精品久久久久久久7电影| 免费97视频在线精品国自产拍| 国产精品福利观看|