Что Вы рекомендуете для принятия пользовательских рисунков в браузере?

Это методы делегата, объявленные протоколом под названием MGLMapViewDelegate, который реализован в вашем классе

class ViewController: UIViewController, MGLMapViewDelegate { ... }

Установив delegate некоторого объекта в качестве вашего контроллера (= self), как вы это сделали с MGLMapView в viewDidLoad

mapView.delegate = self

вы говорите, что при вызове какого-либо метода для делегата mapView будет вызван метод, реализованный вами, например, mapView(_:viewFor:) -> MGLAnnotationView?. [1113 ]


В любом случае, ваш mapView должен быть переменной экземпляра, в противном случае вы потеряли ссылку на него

class ViewController: UIViewController, MGLMapViewDelegate {

    var mapView: MGLMapView!

    override func viewDidLoad() {
        super.viewDidLoad()
        mapView = MGLMapView(frame: view.bounds)
        ...
    }
}
7
задан Michael Myers 1 April 2009 в 18:29
поделиться

10 ответов

Не слишком трудно соединить основное приложение наброска, использующее просто HTML. Я позволю Вам разработать детали создания его готовое производство.

Я использую extjs здесь в качестве перекрестной платформы события браузера, но можно использовать то, что Вы довольны (jQuery). Я также использую Raphael для получения перекрестной функциональности рисования браузера.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>TestPage</title>
    <script language="javascript" src="raphael-src.js"></script>
    <script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="extjs/ext-all-debug.js"></script>
    <script language="javascript">


    scribbler = function (container, width, height) {
      this.canvas = Raphael(container, width, height);

      this.currentdraw = null;

      Ext.get(container).on('mousedown', function(e) {
            var el = Ext.get(container);
            this.currentdraw = this.canvas.path({ stroke: "black", fill: "none", "stroke-width":4 });
            this.currentdraw.moveTo(e.getPageX() - el.getLeft(), e.getPageY() - el.getTop());
      }, this);      

      Ext.get(container).on('mousemove', function(e) {
            var el = Ext.get(container);
            if (this.currentdraw != null)
            {
                this.currentdraw.lineTo(e.getPageX() - el.getLeft(), e.getPageY() - el.getTop());
            }
      }, this);      

      Ext.get(container).on('mouseup', function(e) {
            this.currentdraw = null;
      }, this);      

    }

    var scribble;
    Ext.onReady( function() 
        {
            scribble = new scribbler("container", 800,600);
        }
    );

    </script>

  </head>

  <body>
    <div id="container" style="position:relative;border:1px solid black;width:640px;height:400px">
    </div>
  </body>
</html>

Необходимо будет записать и сохранить различные строки каракулей в форме для представления. И удостоверьтесь, что указатель мыши корректен все время (это - текстовая панель под IE).

Так или иначе наслаждаться.

PS. Я загрузил рабочий пример включая raphael и завершаю extjs2 библиотеки к drop.io (3 МБ, 7zip).

PPS. Я загрузил рабочий пример, который является основным (но в значительной степени полное) управление. См. inquisitiveturtle.

7
ответ дан 6 December 2019 в 08:17
поделиться

Как другие ответы указывают, Flash был бы самым легким методом.

Но не исключайте холст. Через некоторый изящный JavaScript и немного некоторая собственная пустая болтовня MS (VML) можно эмулировать поведение холста в IE.

Если флэш-память не является Вашей вещью (это уверенный не является моим), затем, это могло бы быть действительно аккуратной альтернативой.

6
ответ дан 6 December 2019 в 08:17
поделиться

До сих пор лучшее и самое легкое решение, которое я нашел, состоит в том, чтобы использовать что-то вроде этого: http://www.flashnifties.com/flash_guestbook.php

2
ответ дан 6 December 2019 в 08:17
поделиться

Если Вы не хотите использовать Flash, я думаю, что холст является, вероятно, Вашим лучшим выбором, как другие упомянули. Существует несколько проектов, плавающих вокруг этого, эмулируют поддержку его в IE, но самый полный (к моему знанию) является экс-холстом. Mozilla имеет учебное руководство для использования его, поскольку действительно тарифицирует Фрезу. Это (более старое) учебное руководство говорит об использовании холста с Ajax.

Однако, если Вы не хотите создавать свое собственное, и Вы просто хотите способность, Вы могли бы хотеть изучить электронные доски онлайн как Dabbleboard (который имеет API), или skrbl (который имеет встраиваемый виджет).

4
ответ дан 6 December 2019 в 08:17
поделиться

Я рекомендовал бы использовать <canvas> тег; это доступно исходно в Safari, Chrome, Firefox и Opera, и доступно при помощи ExplorerCanvas в IE, который является простой оберткой, которая делает язык IE VML доступным из холста совместимый интерфейс. См. эту статью для учебного руководства о том, как сделать приложение рисунка с помощью <canvas> элемент. Можно найти много документов и учебных руководств путем поиска Google.

Существует открытый исходный код <canvas> приложение рисования основы, с которым можно играть и загрузить здесь.

2
ответ дан 6 December 2019 в 08:17
поделиться

Другой альтернативе флэш-памяти и мне просто, оказывается, нравится SVG.

Веб-приложение Amaltas SVG

1
ответ дан 6 December 2019 в 08:17
поделиться

Ну, tenthousandcents является приложением Adobe Flash. Лучшее место для запуска должно начать изучать Flash, если действительно требуется сделать что-то подобным. Действительно не собирается быть что-либо легкое о принятии даже простых закорючек, если Вы не знаете платформ.

0
ответ дан 6 December 2019 в 08:17
поделиться

Одна опция состоит в том, чтобы использовать HTML5 <canvas> тег, поддерживаемый в Firefox, Safari и Opera, с JavaScript, затем загружая изображение в данных формы.

Это блокирует всех использующие IE, все же.

Adobe Flash является, вероятно, Вашим наилучшим вариантом.

0
ответ дан 6 December 2019 в 08:17
поделиться

Вы могли смотреть на то, как они делают Рисунок в Google Docs:

Google использует SVG в Firefox, Opera, Chrome и других браузерах, которые поддерживают его и VML в Internet Explorer, таким образом, Вам не нужны сторонние плагины.

0
ответ дан 6 December 2019 в 08:17
поделиться

Вы могли использовать апплет Java как Shi-живописец как много oekaki реализаций, делают, такие как тот по iiichan.net.

Отказ от ответственности: Я понимаю клеймо, связанное с апплетами Java в эти дни, но я думал, что буду включать это ради полноты. ;)

0
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: