Простое приложение-слайдер, быстрый вопрос - PullRequest
4 голосов
/ 13 августа 2011

Все выглядит правильно, и все же чего-то не хватает. Не могли бы вы взглянуть?

.m

@synthesize textLabel;
@synthesize slider;

- (IBAction)setLabel:(id)sender {
   int res = [slider value]; 
   NSLog(@"something changed %d", res);

[textLabel setText:[NSString stringWithFormat:@"%d",[slider value]]];
}

.h

@interface SlidaAppDelegate : NSObject {
    UILabel *textLabel;
    UISlider *slider;
    NSString *text;
}

- (IBAction)setLabel:(id)sender;

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UILabel *textLabel;
@property (nonatomic, retain) IBOutlet UISlider *slider;

Всякий раз, когда движется ползунок, я правильно вижу обновление значения, однако симулятор показывает странные числа enter image description here

Симулятор показывает

enter image description here enter image description here

Xib настроен следующим образом:

enter image description here

Пожалуйста, сообщите

* ОБНОВЛЕНИЕ <---------------------------------------- * </strong>

Проблема исчезла, когда я изменился

[textLabel setText:[NSString stringWithFormat:@"%d",[slider value]]];

до

[textLabel setText:[NSString stringWithFormat:@"%d",res]];

Я не до конца понимаю, почему это так, учитывая, что

int res = [slider value]; 

Если возможно, пожалуйста, объясните

1 Ответ

4 голосов
/ 13 августа 2011

Моя ставка заключается в том, что значение возвращает число с плавающей запятой, которое находится в диапазоне от 0 до 1. Поэтому, когда вы присваиваете ему значение int, оно округляется до 0.

Делайте res float.

РЕДАКТИРОВАТЬ

% d хочет int, вы дали ему float с [значение слайдера].Так что, должно быть, это значение было интерпретировано странным образом.См DOC

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