Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从Plist文件设置按钮图像_Ios_Objective C_Xcode_Plist - Fatal编程技术网

Ios 从Plist文件设置按钮图像

Ios 从Plist文件设置按钮图像,ios,objective-c,xcode,plist,Ios,Objective C,Xcode,Plist,我正在尝试将数据从.plist加载到以编程方式创建的按钮。我的plist文件包含图像。我希望在调用.plist时将图像添加到我创建的按钮中。目前,我只能在屏幕上显示图像名称。这是我试过的 NSString *path = [[NSBundle mainBundle] pathForResource:@"Academic" ofType:@"plist"]; NSArray *buttonsArray = [[NSArray alloc] initWithContentsOfFil

我正在尝试将数据从.plist加载到以编程方式创建的按钮。我的plist文件包含图像。我希望在调用.plist时将图像添加到我创建的按钮中。目前,我只能在屏幕上显示图像名称。这是我试过的

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Academic" ofType:@"plist"];
    NSArray *buttonsArray = [[NSArray alloc] initWithContentsOfFile:path];

    NSLog(@"%@",buttonsArray);

    int positionX = 10;

    for (int i = 0; i < [buttonsArray count] ; i++) {

        MainMenu *abingtonAcademic = [buttonsArray objectAtIndex:i];

        UIButton *abAcademicButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [abAcademicButton setImage:abingtonAcademic forState:UIControlStateNormal];
        abAcademicButton.frame = CGRectMake(0, positionX, 300, 40);
        [self.mainMenuScroll addSubview:abAcademicButton];

        positionX += 50;

    }

    [self.mainMenuScroll setContentSize:CGSizeMake(320, positionX + 20)];

}
NSString*path=[[NSBundle mainBundle]pathForResource:@“学术”类型:@“plist”];
NSArray*按钮NSArray=[[NSArray alloc]initWithContentsOfFile:path];
NSLog(@“%@”,按钮阵列);
int位置x=10;
对于(int i=0;i<[按钮阵列计数];i++){
主菜单*abingtonAcademic=[按钮数组对象索引:i];
UIButton*abAcademicButton=[UIButton Button类型:UIButtonTypeRondRect];
[abAcademicButton设置图像:abingtonAcademic for状态:UIControlStateNormal];
abAcademicButton.frame=CGRectMake(0,位置X,300,40);
[self.main菜单滚动添加子视图:abacademic按钮];
位置X+=50;
}
[self.main滚动设置内容大小:CGSizeMake(320,位置X+20)];
}

我怀疑,您在plist中没有图像,而是它的名称。所以,您需要将图像放在应用程序包中。然后,您可以使用设置按钮图像

[abAcademicButton setImage:[UIImage imageNamed: abingtonAcademic] forState:UIControlStateNormal];
但是,如果您将图像编码到NSData并存储到plist,则不应使用

[abAcademicButton setImage:[UIImage imageWithData: abingtonAcademic] forState:UIControlStateNormal];

拥有图像名称后,应使用
+(NSImage*)imageNamed:(NSString*)name
创建图像,然后将其设置为按钮的图像。(前提是您的资产中有此名称的图像)