Выключите увеличивающий масштаб UIScrollView

Я уверен, что Вы доберетесь, тонна "не делают, это" отвечает, и я должен сказать, существует серьезное основание. Это не идеальное решение....

Однако я шел по этой дороге (и подобные) прежде, главным образом потому что задание определило его как трудное требование, и я не мог говорить об этом.

Вот несколько вещей рассмотреть с этим:

, Как легкий это должно связаться с Доступом от Excel с помощью ADO / ДАО? Это вполне ограничено с точки зрения функциональности, или я могу стать творческим?

Это справедливо straitforward. Вы более ограничены, чем Вы сделали бы вещи с помощью других инструментов, так как формы VBA и Excel немного больше ограничивают, чем самые полные языки программирования, но нет ничего, что будет выставочным стопором. Это работает - иногда это немного ужасно, но это действительно работает. В моей последней компании я часто должен был делать это - и иногда вытягивал данные из Доступа и Oracle через VBA в Excel.

я плачу потерю производительности (vs.using формы в Доступе как UI)?

Мой опыт состоит в том, что существует определенно штраф перфекта в выполнении этого. Я никогда не заботился (в моем варианте использования, вещи были достаточно маленькими, что это было разумно), но идущий Excel<-> Доступ намного медленнее, чем просто работа в Доступе непосредственно. Часть его зависит от того, что Вы хотите сделать....

В моем случае, вещь, которая, казалось, была самым медленным абсолютом (и самый болезненный) пыталась заполнить электронные таблицы Excel на основе данных Доступа. Это не было забавой и было часто очень медленно. Если необходимо идти по этой дороге, удостоверьтесь, что сделали все с Excel, hidden/invisible, или перерисовка абсолютно уничтожит Вас.

Предположение, что база данных будет всегда обновляться с помощью ADO / команды ДАО из Excel VBA, который означает, что у меня может быть несколько пользователей Excel, использующих, что одна база данных одиночного обращения и не сталкивается с какими-либо проблемами параллелизма и т.д.?

Вы в значительной степени используете Excel в качестве клиента - тот же способ, которым Вы использовали бы приложение WinForms или любой другой инструмент. Клиенты ADO/дао для Доступа довольно хороши, таким образом, Вы, вероятно, не столкнетесь ни с какими проблемами параллелизма.

Однако Доступ НЕ масштабируется хорошо. Это работает отлично, если Вы имеете 2 или 3 (или даже 10) пользователи. Если Вы соберетесь иметь 100, то Вы, вероятно, столкнетесь с проблемами. Кроме того, я был склонен находить, что Доступу было нужно регулярное техобслуживание, чтобы не иметь проблемы повреждения. Регулярные резервные копии DB Доступа - необходимость. Уплотнение базы данных доступа регулярно поможет предотвратить повреждение базы данных, по моему опыту.

Какие-либо другие вещи я должен знать?

Вы делаете это твердый путь. Используя Excel для удара Доступа будет намного большим количеством работы, чем просто использование Доступа непосредственно.

я рекомендовал бы изучить Доступ API VBA - большая часть из него совпадает с Excel, таким образом, у Вас будет небольшая кривая обучения. Части, которые отличаются просто, делают это легче. У Вас также будут все преимущества создания отчетов Доступа и Форм, которые намного более ориентированы на данные, чем те в Excel. Создание отчетов может быть большим для вещей как это, и наличие Макросов и Отчетов сделает жизнь легче в конечном счете. Если попытка пользователя использовать формы для управления всем, делая формы в Доступе будет очень, очень похожа на выполнение их в Excel, и будет выглядеть почти идентичной, но сделает все быстрее и более гладким.

31
задан Ahmad F 22 March 2017 в 12:43
поделиться

2 ответа

Проверить настройку minimumZoomScale и maximumZoomScale ; Согласно документы :

maximumZoomScale должны быть больше minimumZoomScale для включения масштабирования.

Таким образом, установка одинаковых значений должна отключить масштабирование.

10
ответ дан 27 November 2019 в 21:30
поделиться

Следуя совету fbrereto выше, я создал две функции lockZoom и unlockZoom. При блокировке масштабирования я скопировал максимальную и минимальную шкалы масштабирования в переменные, а затем установил максимальный и минимальный масштаб масштабирования на 1.0. Разблокирование масштабирования просто меняет процесс.

-(void)lockZoom
{
    maximumZoomScale = self.scrollView.maximumZoomScale;
    minimumZoomScale = self.scrollView.minimumZoomScale;

    self.scrollView.maximumZoomScale = 1.0;
    self.scrollView.minimumZoomScale = 1.0;
}

-(void)unlockZoom
{

    self.scrollView.maximumZoomScale = maximumZoomScale;
    self.scrollView.minimumZoomScale = minimumZoomScale;

}
29
ответ дан 27 November 2019 в 21:30
поделиться
Другие вопросы по тегам:

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