Как отобразить наложение/HUD индикатора хода выполнения на iPhone?

Давайте начнем с: вы, вероятно, на самом деле не хотите этого. API pathlib в Python3 выглядит лучше, чем этот, и уже широко поддерживается.

root = pathlib.Path('root')
file1 = root / 'details' / 'file1'  # a Path object at that address

if file1.is_file():
    file1.unlink()
else:
    try:
        file1.rmdir()
    except OSError as e:
        # directory isn't empty

Но если вы по какой-то причине не уверены в этом, вам нужно переопределить __getattr__, чтобы создать новый объект FileStructure и отслеживать родителей и детей.

class FileStructure(object):
    def __init__(self, name, parent):
        self.__name = name
        self.__children = []
        self.__parent = parent

    @property
    def parent(self):
        return self.__parent

    @property
    def children(self):
        return self.__children

    @property
    def name(self):
        return self.__name

    def __getattr__(self, attr):
        # retrieve the existing child if it exists
        fs = next((fs for fs in self.__children if fs.name == attr), None)
        if fs is not None:
            return fs

        # otherwise create a new one, append it to children, and return it.
        new_name = attr
        new_parent = self
        fs = self.__class__(new_name, new_parent)
        self.__children.append(fs)
        return fs

Затем используйте его с:

root = FileStructure("root", None)
file1 = root.details.file1

Вы можете добавить __str__ и __repr__, чтобы помочь вашим представлениям. Вы даже можете включить свойство path

# inside FileStructure
@property
def path(self):
    names = [self.name]
    cur = self
    while cur.parent is not None:
        cur = cur.parent
        names.append(cur.name)
    return '/' + '/'.join(names[::-1])

def __str__(self):
    return self.path

23
задан Community 23 May 2017 в 12:25
поделиться

3 ответа

Вы можете определенно перекрывать взгляды. Просто добавьте прозрачный оверлей в качестве подпредставления в tableView.

Из документации UIView:

Объекты UIView расположены в объекте UIWindow, во вложенной иерархии подпредставлений. Родительские объекты в иерархии представлений называются суперпредставлениями, а потомки - подпредставлениями. Объект представления требует прямоугольной области своего охватывающего суперпредставления, отвечает за все рисование в пределах этой области и имеет право на получение событий, происходящих в нем. Близкие представления могут перекрываться без каких-либо проблем, что позволяет размещать сложные представления.

14
ответ дан 29 November 2019 в 02:12
поделиться

Любой объект, который живет в Вашем MainWindow.xib, может получить доступ к окну приложения через торговую точку. У делегата приложения в стандартных проектах уже есть он, но Вы, вероятно, захотите добавить выход к своему контроллеру представления, который должен показать наложение прогресса.

С тех пор в UIKit UIWindow является UIView (в отличие от NSWindow по сравнению с NSView в Какао), можно просто добавить представление прогресса как подпредставление окна:

[window addSubview:progressView];

progressView покроет целое приложение UI.

Этот пример использует технику для постепенного исчезновения изображения всплеска Default.png:

http://michael.burford.net/2008/11/fading-defaultpng-when-iphone-app.html


С отношением к недавнему редактированию, с MacOS X 10,5 Leopard наложение NSView детерминировано (они всегда могли накладываться, Вы просто получили неопределенные результаты), хотя это имеет другое упорядочивание грудь-спина в зависимости от того, является ли содержание представления поддержанным слоем или нет. Это наиболее вероятно побочный эффект интеграции CALayers в систему представления OS X.

1
ответ дан 29 November 2019 в 02:12
поделиться

Ответ: Документы по яблокам просто потрясающие. http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html

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

Я имею в виду религиозный трактат или что? Удивительные вещи от ребят из NEXT:

Объекты UIView расположены в объекте UIWindow, во вложенной иерархии подпредставлений. Родительские объекты в иерархии представлений называются суперпредставлениями, а потомки - подпредставлениями. Объект представления требует прямоугольной области своего охватывающего суперпредставления, отвечает за все рисование в пределах этой области и имеет право на получение событий, происходящих в нем. Близкие представления могут перекрываться без каких-либо проблем, что позволяет размещать сложные представления.

-1
ответ дан 29 November 2019 в 02:12
поделиться
Другие вопросы по тегам:

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