2016-03-19 12 views
0

Ich versuche, eine App zu machen, wo das Bild mit dem Anagramm eines Wortes kommt. Ich habe den Anagramm-Teil, aber ich kann das Bild nicht hervorbringen. Das Bild wird in einem Ordner namens "images" gespeichert. Ich möchte anagramPics - Punkt 0 gleichzeitig mit Anagrammen - Punkt 0 - aufrufen, um das Wort mit dem Bild zu vergleichenSpeichern des Bildpfads in plist dann abrufen, um auf dem Bildschirm zu zeigen

Vielen Dank im Voraus.

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

Code für das Anagramm:

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

Bitte senden Sie Ihren Code. – ryantxr

+0

Ich sehe keinen Code, der versucht, ein Bild anzuzeigen. – ryantxr

+0

das ist, was ich habe Probleme mit. Ich weiß nicht, wie ich es überhaupt nennen soll. – isabella

Antwort

0

Ich habe eine ähnliche Situation, in der ich einige feste Bilder zur Anzeige habe. Das habe ich getan.

Hinzugefügt eine UIImageView auf Storyboard. Ich positionierte es dort, wo ich es wollte mit Einschränkungen etc.

Erstellt ein IBOutlet dafür. Nennen Sie es myImageView.

Ich habe alle meine Bilder als Assets hinzugefügt. In meinem Fall zeige ich verschiedene Kreditkartenabbildungen an, aber das Prinzip ist das selbe.

Click on Images.xcassets

Credit card image assets

Looks like this in Xcode

Jedes Bild Asset ist ein Ordner mit einer Contents.json Datei und die Bilddateien, die mit ihm zu gehen. Sie werden feststellen, dass es drei Dateien gibt. iOS wird die richtige Größe für Retina, iPhone 6Plus usw.

Contents.json sieht wie folgt verwendet werden:

{ 
    "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

Im Code das Bild des UIViewImage ändern, indem sein Bildeigenschaft

(Dies ist Swift-Code. Sie werden es selbst, Objective-C zu konvertieren.)

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

wo genau hast du deinen Code dafür? Es ist eigentlich eine gute Idee! also vielen Dank! – isabella

+0

In meinem Fall ist es in einer Tabellenansicht, so ist es in der Tabellenansicht: cellForRowAtIndexPath. Ich kann Ihnen nicht sagen, wo Sie es hinstellen sollen, denn das hängt davon ab, wie Ihre Anwendung strukturiert ist.Wenn Sie eine Schaltfläche verwenden, um das Bild zu ändern, fügen Sie es in die IBAction dieser Schaltfläche ein. – ryantxr

Verwandte Themen