Как я могу получить Xcode для рандомизации картинки? - PullRequest
0 голосов
/ 19 марта 2011

Итак, я искал в интернете способы случайного выбора, а затем отображения изображения. И пока у меня есть это в моем .m viewcontroller:

#import "classgenViewController.h"

@implementation classgenViewController
@synthesize images, randomStrings;

- (void)viewDidLoad {
    [super viewDidLoad];
    self.randomStrings = [NSArray arrayWithObjects:@"Frag.png",
                          @"Semtex.png",
                          @"Tomahawk.png",
                          nil];
}

- (IBAction)showRandomString {
     UIImageView *images = [randomStrings objectAtIndex: (arc4random() % [randomStrings count])];
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.images = nil;
}

- (void)dealloc {
    [self.images release];
    [self.randomStrings release];
    [super dealloc];
}

@end

но * images говорит, что это неиспользованная переменная. Как я могу использовать это. Он объявлен в моем .h, я использовал для него метод (свойство, неатомный), а также синтезировал его. Помощь

Ответы [ 3 ]

2 голосов
/ 19 марта 2011

Вы просто присваиваете переменную images и фактически ничего с ней не делаете.Также - вы создаете экземпляр класса UIImageView, присваивая ему фактическую строку.У вас есть UIImageView розетка, назначенная вашему UIViewController?Если это так - просто присвойте ему UIImage следующим образом:

- (IBAction)showRandomString {
    NSString *randomImageFilename = [randomStrings objectAtIndex: (arc4random() % [randomStrings count])];
    UIImage *image = [UIImage imageNamed:randomImageFilename];
    uiImageViewOutlet.image = image;
}
0 голосов
/ 21 марта 2011

Сначала вы объявили его как собственность. Затем вы переопределяете это, объявив его как локальную переменную в showRandomStrings. Эта локальная переменная никогда не используется. Чтобы присвоить значение переменной экземпляра, объявленной в файле .h, удалите перед ним «UIImageView *».

Кроме того, вы, кажется, хотите назначить NSString для указателя UIImageView. Это закончится только слезами.

Может быть, вы хотите сделать что-то вроде этого:

UIImage* newImage = [UIImage imageNamed:<your random string here>];
images.image = newImage;

Где "images" - это, по-видимому, UIImageView *, который вы настроили в .h и настроили в Интерфейсном Разработчике.

0 голосов
/ 21 марта 2011

Для меня, как для начинающего, я бы использовал метод, который не является профессиональным, но он работает:)

Прежде всего, в конструктор интерфейсов добавьте нужные изображения, а также изображения. и сделать их скрытыми.

Затем добавьте массив с объектами, ссылающимися на ваши изображения, чем используйте

randomImage = [nameOfArray objectAtIndex:arc4random() % [nameOfArray count]];

затем добавьте несколько операторов if вместе с одной строкой для отображения imageView, например:

if ([randomImage isEqual:@"image1"]) {
image1.hidden = NO;
}

Я пробовал этот метод раньше, и он работал.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...