ios使用plist实现相册功能

第一步:照片复制到Assets文件夹再创建plist

第二步:页面设计

第三步:代码实现

objectivec 复制代码
//
//  PhotoViewController.m
//  study2024
//
//  Created by zhifei  zhu on 2024/8/11.
//

#import "PhotoViewController.h"

@interface PhotoViewController ()
@property (weak, nonatomic) IBOutlet UIButton *btnPre;
@property (weak, nonatomic) IBOutlet UIButton *btnNext;
@property (weak, nonatomic) IBOutlet UIImageView *img;
@property (weak, nonatomic) IBOutlet UILabel *lblTitle;
@property (weak, nonatomic) IBOutlet UILabel *lblDescrible;
@property (weak,nonatomic) NSArray *picArr;
@property (nonatomic) int index;
- (IBAction)pre:(id)sender;
- (IBAction)next:(id)sender;

-(void) getImagewithIndex:(int)index;
@end

@implementation PhotoViewController
-(NSArray *)picArr{
    if(_picArr==nil)
    {
        NSString *path=[[NSBundle mainBundle]pathForResource:@"pic.plist" ofType:nil];
        _picArr=[NSArray arrayWithContentsOfFile:path];
    }
    return _picArr;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    [self getImagewithIndex:0];
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/



- (IBAction)pre:(id)sender {
    self.index--;
    [self getImagewithIndex:self.index];
}
- (IBAction)next:(id)sender {
    self.index++;
    [self getImagewithIndex:self.index];
    
  
}

-(void) getImagewithIndex:(int)index{
    NSDictionary *dictionary=self.picArr[index];
    self.lblTitle.text=[NSString stringWithFormat:@"%d/%d",index+1,_picArr.count];
    self.lblDescrible.text=dictionary[@"title"];
    self.img.image=[UIImage imageNamed:dictionary[@"icon"]];
    self.btnPre.enabled=(index!=0);
    self.btnNext.enabled=(index!=(self.picArr.count-1));

}
@end

效果:

相关推荐
2501_916008891 小时前
Windows 上写第一个 SwiftUI App,KXBuild 空工程起步,跑到 iPhone 真机
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_915918412 小时前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
黑化旺仔21 小时前
【OC】Runtime:类元数据、加载初始化与消息派发
开发语言·macos·ios·objective-c
songgeb1 天前
iOS App支持设置RTL语言的实践
ios·swift·ui kit
软泡芙1 天前
【iOS】swift启动屏显示黑屏
ios
用户69371750013841 天前
当你向领导申请 AI 编程工具预算时,如果领导追问“能提效多少,有量化数据吗”,你该怎么回答?
android·后端·ios
Layer1 天前
一些脱离 Mac 依赖的 Agent 操作 iPhone 实现
ios·ai编程·测试
用户69371750013841 天前
当我说 Claude 搭配 GLM-5.3-Flash 太好用了,同事却提醒我:你可能正在失去对代码的掌控
android·后端·ios
茶底世界之下1 天前
一键裁方会丢掉什么?用 Awaking 给园林照片做两种画幅
ios
Marco_Marco1351 天前
定位SDK接入实战:Android/iOS/鸿蒙三端怎么选、怎么接
android·ios·harmonyos