Я новичок в программировании на iPhone и хотел бы нарисовать линию на экране телефона с целью изучения с использованием Quartz и UIKit.Как нарисовать линию на iPhone?
Как начать рисовать?
Я новичок в программировании на iPhone и хотел бы нарисовать линию на экране телефона с целью изучения с использованием Quartz и UIKit.Как нарисовать линию на iPhone?
Как начать рисовать?
Первый шаг является определение подкласса UIView, чтобы создать пространство для втягивания.
Если вы начинаете с новым приложением, проще всего будет начать с «окнами на основе приложение ".
Затем зайдите в новый файл и создайте «Objective-C Class» с «Subclass of», установленным в «UIView», и дайте ему имя, например MyView.m.
Теперь откройте группу «Ресурсы» и дважды щелкните «MainWindow.xib», чтобы открыть ее в Interface Builder. Отсюда вы увидите окно с названием «Окно». Нажмите Cmd + Shift + L, чтобы открыть библиотеку, и перетащите компонент «Вид» в свое окно и расположите его так, чтобы вы могли его увидеть. Когда вы выбрали новый вид, нажмите Cmd + 4, чтобы открыть идентификатор инспектора и в разделе «Идентификатор класса», выберите раскрывающийся список и выберите «Мой экран».
Далее необходимо реализовать DrawRect: метод в MyView.m, вот пример кода, который рисует линию:
- (void)drawRect:(CGRect)rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
CGContextSetStrokeColor(c, red);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 5.0f, 5.0f);
CGContextAddLineToPoint(c, 50.0f, 50.0f);
CGContextStrokePath(c);
}
Сохранить все и нажмите кнопку «Создать и запустить», теперь вы должны увидеть короткая красная линия на iPhone.
Дополнительную информацию о Core Graphics см. В документации Apple. Я также счел полезным искать функции, начинающиеся с CGContext в средстве просмотра документации Xcode, и просматривать их - большинство функций Core Graphics, которые вы в конечном итоге используете, начнутся с термина «CGContext».
Вы также можете нарисовать линию, используя UIBezierPath
. Ниже будет опираться вертикально-центрированная горизонтальная линия:
- (void)drawRect:(CGRect)rect {
CGFloat rectHeight = CGRectGetHeight(rect);
CGFloat rectWidth = CGRectGetWidth(rect);
UIBezierPath *line = [UIBezierPath bezierPath];
[line moveToPoint:CGPointMake(0, rectHeight/2)];
[line addLineToPoint:CGPointMake(rectWidth, rectHeight/2)];
[[UIColor lightGrayColor] setStroke];
[line stroke];
}
спасибо Тобиас .... Это помогает мне .... – 2009-05-13 09:37:43
+1 для ответа с кодом вместо RTFM. – willc2
+1 это помогло мне :) –