Несколько Представлений в одном XIB - iPhone SDK

Может быть, вы хотите игнорировать стилистику Seaborn и просто установить нужные параметры напрямую?

import matplotlib.pyplot as plt
import seaborn as sns

rc = {'figure.figsize':(10,5),
      'axes.facecolor':'white',
      'axes.grid' : True,
      'grid.color': '.8',
      'font.family':'Times New Roman',
      'font.size' : 15}
plt.rcParams.update(rc)

Data = sns.load_dataset("tips")
g = sns.lmplot(x="total_bill", y="tip", hue="smoker", data = Data, legend_out = False, aspect = 2)
g.set(xlabel = "independent", ylabel = "dependent")
sns.despine(fig=None, ax=None, top=False, right=False, left=False, bottom=False, offset=None, trim=False)
plt.show()

enter image description here

17
задан Frank V 18 August 2011 в 15:59
поделиться

2 ответа

Это вопрос оптимизации памяти и времени загрузки. Если вы поместите все ваши представления в одну XIB, то, когда ваше приложение запускается, оно должно загрузить всю XIB в память и создать все объекты для всех элементов управления, а это занимает нетривиальное количество времени.

Если вместо этого вы разделите ваши представления на отдельные XIB, то ваше приложение запустится намного быстрее, потому что будет загружена только XIB, содержащая начальное представление, и оно также будет сначала использовать меньше памяти. Затем, когда представление меняется, вы можете лениво загрузить XIB, содержащий новое представление. Это приведет к небольшому затруднению при открытии вида в первый раз. Если вы действительно пытаетесь оптимизировать использование памяти, вы также можете выгрузить предыдущее представление при переключении представлений, но я бы не рекомендовал это,

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

Следуя предыдущему ответу, бывают случаи, когда вам нужно загрузить несколько представлений одновременно. Вот пример: вы показываете отчет с несколькими страницами и собираетесь использовать UIScrollView для управления ими. Когда пользователь закончит просмотр отчета, он закроет отчет, который закроет представление.

Создайте UIScrollView в XIB вместе с UIView для каждой нужной страницы. Поскольку UIViews являются частью XIB, они будут загружены в память вместе, все сразу, при открытии отчета. Создайте два UIViewController и используйте их для отображения просматриваемой страницы и той, к которой выполняется прокрутка. Когда пользователь перемещается по страницам, повторно используйте UIViewController на прокручиваемой странице, чтобы удерживать прокручиваемую страницу.

Это обеспечит высокую производительность, пока пользователь листает страницы. Он загружает все страницы сразу в память. Я использую только два UIViewController, и он просто меняет, какие представления в них находятся, и перемещает их.

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

Если вы ищете хороший пример того, как это сделать, я считаю этот ресурс отличной отправной точкой:

http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

4
ответ дан 30 November 2019 в 12:58
поделиться
Другие вопросы по тегам:

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