Зеркальное отражение UIViews от вершины / нижняя часть

Прежде чем решить проблему, давайте обсудим бинарный поиск,

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

Здесь вам нужно менять среднюю точку каждый раз, когда цикл завершает один цикл, а затем вам нужно проверить, находится ли элемент в нижней или верхней половине, если он присутствует в нижней половине, тогда вам нужно изменить конечную точку, а не запускать -point, а если в верхней половине, то изменить нижнюю точку

И еще одна важная вещь: в вашем условии while, если элемент отсутствует, он будет находиться в бесконечном цикле, поэтому ваше условие while должно быть в то время как (end_point> start_point), потому что мы меняем точки в каждом цикле.

Код для справки:

def binary_search(array,item):
    start_point = 0
    end_point = len(array)
    array.sort()
    print(array)
    while end_point > start_point:
        mid_point = int((start_point + end_point) / 2)
        if array[mid_point] < item:
            start_point = mid_point+1
        elif array[mid_point] > item:
            end_point = mid_point-1
        elif array[mid_point] == item:
            print(mid_point)
            return
    print("ELement is not present")

binary_search([0,99,2,6,7,8],3)
7
задан Ryan Amos 10 March 2009 в 22:11
поделиться

3 ответа

Можно сделать это путем применения CATransform3D к CALayer основного представления с CALayer вторичного представления позади него. В этом ответе я указываю на реализацию Mac этой анимации Mike Lee. Необходимо смочь снова использовать значительную часть того кода для воссоздания этого эффекта на iPhone.

4
ответ дан 7 December 2019 в 05:30
поделиться

Угадайте, что необходимо будет использовать блок анимации UIView с 3D вращением, преобразовывают 90 градусов, имеют Базовый вызов делегата Анимации Вы, когда это сделано, подкачайте представление с новым (3D повернутый с другой стороны) и цепочка с последними 90 градусами для нового представления...

3
ответ дан 7 December 2019 в 05:30
поделиться

Хотя не точно, что Вы хотите, существует две встроенных анимации, которые Вы не упоминали: UIViewAnimationTransitionCurlDown и UIViewAnimationTransitionCurlUp.

CurlUp похож на кого-то, очищает представление с самого начала к вершине, и CurlDown похож на представление, разворачивается вниз сверху экрана сверху донизу. Необходимо, по крайней мере, посмотреть на них, поскольку они просты в использовании.

1
ответ дан 7 December 2019 в 05:30
поделиться
Другие вопросы по тегам:

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