iOS рисунок для экрана

Я работаю над рисованием на экране iOS с использованием основной графики, и мне удалось рисовать на экране, но из учебника, который я последовал, экран чертежа охватывает все остальное в моем файле nib. Может ли кто-нибудь помочь мне разобраться, как ограничить область рисования в пределах представления, которое я создал в моем циферблате? Я застрял на этом некоторое время.

Следующее учебное пособие было следующим: http://www.ifans.com/goto/http://www.touchrepo.com/SampleCode/TEST_DRAW_APP.zip

Мой код:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. //Set text from previous text.text = [[GameManager sharedManager] inText]; drawImage = [[UIImageView alloc] initWithImage:nil]; drawImage.frame = self.view.frame; [self.view addSubview:drawImage]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = NO; UITouch *touch = [touches anyObject]; if ([touch tapCount] == 2) { drawImage.image = nil; return; } lastPoint = [touch locationInView:self.view]; lastPoint.y -= 20; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = YES; UITouch *touch = [touches anyObject]; CGPoint currentPoint = [touch locationInView:self.view]; currentPoint.y -= 20; UIGraphicsBeginImageContext(self.view.frame.size); [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0); CGContextBeginPath(UIGraphicsGetCurrentContext()); CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); CGContextStrokePath(UIGraphicsGetCurrentContext()); drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); lastPoint = currentPoint; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; if ([touch tapCount] == 2) { drawImage.image = nil; return; } if(!mouseSwiped) { UIGraphicsBeginImageContext(self.view.frame.size); [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0); CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextStrokePath(UIGraphicsGetCurrentContext()); CGContextFlush(UIGraphicsGetCurrentContext()); drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } } 

One Solution collect form web for “iOS рисунок для экрана”

У меня был успех с расширением UIView в подклассе, который я ссылаюсь на свой конструктор интерфейса xib. Таким образом, я могу увидеть представление в построителе интерфейса, перенести его и изменить его свойства из конструктора интерфейса. Я делаю это следующим образом, но вы можете сделать это в любом порядке:

  1. Создайте новый экземпляр класса UIView для вашего представления, который вы позже свяжете в конструкторе интерфейса.
  2. В новом классе просмотра переопределите метод drawRect и сделайте рисунок. Не забудьте получить ссылку на графический контекст, чтобы вы могли рисовать с ним. Я вижу, что вы часто используете метод UIGraphicsGetCurrentContext (). Лучше назначить это переменной, чтобы избежать накладных расходов и улучшить производительность чертежа, если вы выполняете сложные вещи.
  3. В Interface Builder выберите контроллер представления, в который вы хотите поместить свое представление, и перетащите новое представление на свой контроллер представления из библиотеки объектов. При необходимости измените размер пустой коробки.
  4. Наконец, выберите свое представление в построителе интерфейсов и перейдите на вкладку «Индекс удостоверения личности». Выберите класс, который вы создали ранее, в раскрывающемся списке Custom Class -> Class (если вы не можете найти его здесь, не беспокойтесь, перезапустите Xcode и начните повторную попытку, иногда это происходит).
  5. Хотя ваше представление будет выглядеть пустым в построителе интерфейса, оно должно рисоваться, когда вы запустите его в кадре, установленном для представления.

Я вижу, что вы рисуете, когда пользователь прикасается к контроллеру вида. Эти события касания могут по-прежнему обрабатываться в вашем классе контроллера основного вида. Чтобы справиться с этим, вы можете изменить некоторые свойства в своем подзоне и вызвать «setNeedsDisplay» на вашем суб-представлении, чтобы убедиться, что метод draw sub view вызван при следующем обновлении дисплея.

  • не может установить уровень масштабирования на MKMapView
  • Как передать объект между несколькими видами в раскадровке, iOS Dev
  • Основные данные на клиенте (iOS) для кэширования данных с сервера Стратегия
  • Клиент iOS: «Кэширование» Данные на стороне сервера для постоянного хранения
  • Работа с обновлениями местоположения, когда приложение завершено
  • Добавление базовых данных в приложение iPhone с существующими (обычными) моделями
  • Как преобразовать существующую схему MySQL в основные данные
  • iOS, CLLocationManager: отображение всплывающего окна «Повторные службы местоположения»
  • iOS - CoreLocation и geofencing при закрытии приложения
  • Ошибка: CoreData: warning: Невозможно загрузить класс с именем '' для сущности 'Receipt'. Но класс удаляется
  • Как получить уникальные значения из приложения Coredata iphone?
  • Interesting Posts

    План разработки мобильных приложений с REST Api – хорошая идея?

    Когда вы просыпаетесь от уведомления о значительном изменении местоположения, сколько времени у меня есть в фоновом режиме?

    Обновлен до XCode 4.5 для armv7s, но XCode 4.5 удаляет armv6, но не может ограничивать требования

    Как преобразовать NSString в NSDate в этом формате: «2012-08-01T12: 43: 35 + 02: 00»?

    Нет такого модуля только при архивировании

    Создание многоразового UIView, аналогичного UITableViewCell

    Запрос перехвата с WKWebView

    Скрыть и удалить баннер Admob

    URL-схема для открытия определенного вида с данными

    Есть ли хорошие примеры использования UIManagedDocument?

    Сбой загрузки ресурсов по требованию

    Загрузите собственный https-url с помощью UIWebview и NSURLSession

    Неявное объявление функции 'pthread_mutex_init' недействительно в C99

    Как уменьшить размер ipa моего приложения

    Добавить UISearchBar в заголовке UICollectionViewController

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.