Помогите с Xcode drawRect, используя текстовое поле для ввода значения - PullRequest
1 голос
/ 17 февраля 2011

Я сейчас пытаюсь сделать гистограмму в XCode.Я пробовал CPGraph и все остальное, но все они устарели, и мне нужна помощь для XCode 4. Я совершенно новичок в этом, и поэтому мне нужна ваша помощь.

Вот мой код:

- (void) drawRect: (CGRect) rect

{

NSString *s = textField.text;
value = [s intValue];
NSLog(@"%i",value);


    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context, 60);

    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

    CGFloat components[] = {0.0, 0.0, 1.0, 1.0};

    CGColorRef color = CGColorCreate(colorspace, components);

    CGContextSetStrokeColorWithColor(context, color);

    CGContextMoveToPoint(context, 400, value);
    CGContextAddLineToPoint(context, 400, 100);

    CGContextStrokePath(context);
    CGColorSpaceRelease(colorspace);
    CGColorRelease(color);

}

Обратите внимание, что я изменил одно из значений баллов на «значение».Что я сделал, так это создал UITextField, и я хочу иметь возможность писать как 500 в UITextField, и чтобы бар сам настраивался.В настоящее время NSLog сообщает мне, что значение равно 0, даже если перед сборкой приложения я вручную ввел число в TextField.Я искал в течение 3 дней, и все, что я нашел, дает мне ошибки и неполно, поскольку я говорю, что почти ничего не знаю о target-c в xcode.Во время поиска я также заметил, что линии такого типа не обновляются в реальном времени, если вы не скажете ему.Я бы тоже хотел помочь с этим, если это часть моей проблемы.Если вы хотите больше информации о моем коде, просто скажите мне.Буду очень признателен, если кто-нибудь сможет мне помочь.

вот мой .h:

@ interface draw2D: UIView

{

 UITextField *textField;

}

@ свойство (неатомное, сохранение) IBOutlet UITextField * textField;

@ end

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

ОК, я узнал, как перерисовать мою строку с помощью кнопки «Обновить».

Я создал кнопку и связал ее с моим UIView, где рисуется моя линия.Внутри я написал [self setNeedsDisplay];, и каждый раз, когда я нажимаю кнопку, он обновляет вид и возвращает мне свой NSlog, который я установил тем же методом, что и drawRect.

Большое спасибо еще раз Мерки.

0 голосов
/ 18 февраля 2011

ОК, похоже, поскольку ваше текстовое поле подключено в IB к владельцу файла, то есть, как правило, это делегат вашего приложения, который не относится к классу, который вы указали выше, поскольку это UIView.Таким образом, если вы не изменили владельца файла на этот UIView, тогда ваше текстовое поле не подключено.Поэтому обычно я добавляю UIView в окно XIB в IB (если вы не используете тот, который предоставляется бесплатно при создании XIB).Тогда это то, к чему я прикреплю текстовое поле, а не владельца файла.В некотором роде напрашивается вопрос о том, как что-либо прикрепить к Владельцу файлов, если только у вас там не объявлен UITextField (опять же, при условии, что вы не изменили класс с делегата приложения на этот класс представления).

IЗнайте, что если кто-то новичок в этом, это почти как греческий.Я разрабатывал на Java, C / C ++, C # и т. Д. Годами, и это было похоже на обучение программированию заново.

Если вы новичок в этом, я настоятельно рекомендую книгу для разработчиков iPhone от Big Nerd Ranch.Я нашел это очень полезным.

...