2015-07-01 62 views
0

我想从我的.plist中加载数据到我以编程方式创建的按钮。我的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)]; 

} 
+1

当你有像名字你应该使用'+(NSImage *)imageNamed:(NSString *)name'来创建图像,然后将其设置为按钮的图像。 (前提是您的资产中包含此名称的图片) – nanako

回答

0

我怀疑,你没有图像的plist,但它的名字。所以,你需要将图像放在应用程序的包中。不是,你可以设置你的按钮图像与

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

但是,如果你有你的图像编码为NSData的并存储到plist中,比你应该使用

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