从 Plist 文件设置按钮图像
Setting Button Image from Plist file
我正在尝试将数据从我的 .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)];
}
我怀疑,你在 plist 中没有图像,而是它的名称。因此,您需要将图像放在应用程序的捆绑包中。然后,您可以使用
设置按钮图像
[abAcademicButton setImage:[UIImage imageNamed: abingtonAcademic] forState:UIControlStateNormal];
但是,如果您将图像编码为 NSData 并存储到 plist,那么您应该使用
[abAcademicButton setImage:[UIImage imageWithData: abingtonAcademic] forState:UIControlStateNormal];
我正在尝试将数据从我的 .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)];
}
我怀疑,你在 plist 中没有图像,而是它的名称。因此,您需要将图像放在应用程序的捆绑包中。然后,您可以使用
设置按钮图像[abAcademicButton setImage:[UIImage imageNamed: abingtonAcademic] forState:UIControlStateNormal];
但是,如果您将图像编码为 NSData 并存储到 plist,那么您应该使用
[abAcademicButton setImage:[UIImage imageWithData: abingtonAcademic] forState:UIControlStateNormal];