#objective-c #cocoa-touch #ios4 #xcode4
#objective-c #cocoa-touch #ios4 #xcode4
Вопрос:
Приложение, над которым я работаю, по сути, представляет собой калькулятор. Что я хочу сделать, так это настроить что-нибудь так, чтобы на экране результатов, если все ответы = 60 или выше, появлялась большая зеленая галочка (изображение, которое я добавлю) и какой-нибудь текст выше или ниже, в котором говорится, что вы прошли. Если нет, я хочу, чтобы появился красный крестик, сообщающий о вашей ошибке.
Я знаю, что это должно быть просто, я просто не знаю, где искать ответы. Если бы кто-нибудь мог указать мне правильное направление ссылкой или чем-то еще, чтобы я мог прочитать об этом, это было бы здорово. потому что я пытался искать, но, честно говоря, я просто не знаю, что искать.
Комментарии:
1. Вводит ли пользователь числа в поля?
2. да, пользователь вводит числа в текстовое поле. Вычисления выполняются для тех чисел, которые введены. и затем на экране результатов появляется оценка, и именно там я хочу, чтобы появилась зеленая галочка или красный крестик
Ответ №1:
Итак, вам в основном просто нужно получить текст из UITextField
в виде целого числа вот так:
int sumOfFields = [[myUITextField text] intValue];
Вы бы сделали это для всех своих полей. Затем вам нужно проверить, больше или равно 60 или нет:
if (sumOfFields >= 60) {
[self setValidationUI:TRUE];
}
else {
[self setValidationUI:FALSE];
}
Где setValidationUI
— это метод, который принимает логическое значение, определяющее, должен ли он отображать большую зеленую галочку или немного красный крест, например:
-(void)setValidationUI:(BOOL)isValid {
if (isValid) {
[resultsImage setImage:[UIImage imageNamed:@"checkmark.png"]];
[resultsTextField setText:@"You Passed!"];
}
else {
[resultsImage setImage:[UIImage imageNamed:@"BigUglyRedX.png"]];
[resultsTextField setText:@"You Fail..."];
}
}
файл заголовка
- (void)setValidationUI:(bool)isValid;
@property (nonatomic, retain) IBOutlet UIImageView *resultsImage;
@property (nonatomic, retain) IBOutlet UILabel *resultsLabel;
Комментарии:
1. Хорошо, я понимаю, что беру текст, который будет отображаться в моих ярлыках на экране результатов, и присваиваю им значение целого числа. Затем используйте инструкцию if / else, чтобы проверить, равно ли оно >= 60. Но как «setValidationUI» отображает зеленую галочку или красный крестик? если я собираюсь импортировать эти 2 изображения в свой проект. как «setValidationUI» вызывает эти изображения для отображения и где он будет их отображать?
2. @Shaun: Я обновил свой код функцией, о которой я говорил. Теперь все это имеет смысл?
3. Да, я так думаю. Итак, -(void) будет отображаться в моем приложении delegate.h amp; .m ?? и затем, какой бы заполнитель изображения и текстовое поле или метку я ни настроил на экране результатов, я связываю их этим методом в IB?
4. Да, вам нужно поместить имя метода
-(void)setValidationUI:(BOOL)isValid;
в заголовок, а весь метод — в m-файл. А затем заменитеresultsImage
иresultsTextField
именами, которые вы дали этим представлениям в Interface Builder.5. Вам нужно, чтобы они были названы в Interface Builder. Затем вам нужно добавить свойства в представление, которое их использует:
@property (nonatomic, retain) UIImageView *myImageView;
Конечно, используйте свое имя для представлений вместо ‘myImageView’.