2016-03-19 1 views
0

Я пытаюсь создать приложение, в котором изображение появляется с помощью анаграммы слова. У меня есть анаграмма, но я не могу получить картинку. Изображение сохраняется в папке под названием «изображения». Я хотел бы называть anagramPics - item 0, в то же время, что и анаграммы -item 0 - для соответствия слову с picСохранение пути изображения в plist, а затем извлечение, чтобы показать на экране

Заранее спасибо.

I would like to call anagramPics - item 0, at the same time as anagrams -item 0 - to match the word with the pic

код анаграмму:

level.m

#import "Level.h" 

@implementation Level 

+(instancetype)levelWithNum:(int)levelNum; 
{ 
// find .plist file for this level 
    NSString* fileName = [NSString stringWithFormat:@"level%i.plist", levelNum]; 
    NSString* levelPath = [[[NSBundle mainBundle] resourcePath]  stringByAppendingPathComponent:fileName]; 

    // load .plist file 
    NSDictionary* levelDict = [NSDictionary dictionaryWithContentsOfFile:levelPath]; 

    // validation 
    NSAssert(levelDict, @"level config file not found"); 

    // create Level instance 
    Level* l = [[Level alloc] init]; 

    // initialize the object from the dictionary 
    l.pointsPerTile = [levelDict[@"pointsPerTile"] intValue]; 
    l.anagrams = levelDict[@"anagrams"]; 
    l.timeToSolve = [levelDict[@"timeToSolve"] intValue]; 

    return l; 
} 

@end 

level.h

#import <Foundation/Foundation.h> 

@interface Level : NSObject 

//properties stored in a .plist file 
@property (assign, nonatomic) int pointsPerTile; 
@property (assign, nonatomic) int timeToSolve; 
@property (strong, nonatomic) NSArray* anagrams; 

//factory method to load a .plist file and initialize the model 
+(instancetype)levelWithNum:(int)levelNum; 

@end 

gameController.h

-(void)dealRandomAnagram 
{ 
//1 
NSAssert(self.level.anagrams, @"no level loaded"); 

//2 random anagram 
int randomIndex = arc4random()%[self.level.anagrams count]; 
NSArray* anaPair = self.level.anagrams[ randomIndex ]; 

//3 
NSString* anagram1 = anaPair[0]; 
NSString* anagram2 = anaPair[1]; 

//4 
int ana1len = [anagram1 length]; 
int ana2len = [anagram2 length]; 

//5 
NSLog(@"phrase1[%i]: %@", ana1len, anagram1); 
NSLog(@"phrase2[%i]: %@", ana2len, anagram2);  
} 
+1

Пожалуйста, ваш код. – ryantxr

+0

Я не вижу никакого кода, который пытается показать изображение. – ryantxr

+0

это то, с чем я столкнулся. Я не знаю, как назвать это вообще. – isabella

ответ

0

У меня такая же ситуация, когда у меня есть фиксированные изображения для отображения. Это то, что я сделал.

Добавлен UIImageView на раскадровки. Расположил его там, где я хотел, используя ограничения и т. Д.

Создал для него IBOutlet. Назовите это myImageView.

Я добавил все свои изображения в качестве активов. В моем случае я показываю различные изображения кредитных карт, но принцип тот же.

Click on Images.xcassets

Credit card image assets

Looks like this in Xcode

Каждое изображение актива представляет собой папку с файлом Contents.json и графические файлы, которые идут с ним. Вы заметите, что есть три файла. IOS будет использовать правильный размер для сетчатки, iPhone 6plus т.д.

Contents.json выглядит следующим образом:

{ 
    "images" : [ 
     { 
      "idiom" : "universal", 
      "scale" : "1x", 
      "filename" : "[email protected]" 
     }, 
     { 
      "idiom" : "universal", 
      "scale" : "2x", 
      "filename" : "[email protected]" 
     }, 
     { 
      "idiom" : "universal", 
      "scale" : "3x", 
      "filename" : "[email protected]" 
     } 
    ], 
    "info" : { 
     "version" : 1, 
     "author" : "xcode" 
    } 
} 

asset folder

В коде, изменить образ UIViewImage, установив его изображение.

(Это Swift код. Вам придется преобразовать его в Objective-C самостоятельно.)

myImageView.image = UIImage(named:"Card VISA") 
+0

, где именно вы положили свой код для этого? На самом деле это хорошая идея! так что спасибо тебе! – isabella

+0

В моем случае он находится в виде таблицы, поэтому он находится в tableview: cellForRowAtIndexPath. Я не могу сказать вам, где его разместить, потому что это зависит от того, как структурировано ваше приложение.Если вы используете кнопку, чтобы изменить изображение, поместите его в IBAction этой кнопки. – ryantxr

Смежные вопросы