Разработка под iOS - круглые кнопки Rect перемещаются вниз для подменю - PullRequest
0 голосов
/ 21 февраля 2012

Я потратил около 3 месяцев, пытаясь выяснить проблему, и, наконец, обратился за помощью.У меня есть меню с 5 круглыми прямоугольными кнопками.Я хочу знать, есть ли способ, которым я могу сделать это, когда я нажимаю первую кнопку, остальные четыре перемещаются вниз, чтобы создать пространство для подменю под первой кнопкой.То же самое для второй, третьей, четвертой и пятой кнопки.В то же время, однако, я хочу сделать это так, если первая кнопка нажата, остальные четыре перемещаются вниз и говорят, что третья нажата, четыре и пять перемещаются еще больше вниз, и представление прокрутки запускается, когда они не могутбольше все будет отображаться на экране сразу.Заранее спасибо за помощь:).

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

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

button.frame = CGRectMake(button.frame.origin.x, (button.frame.origin.y), button.frame.size.width, button.frame.size.height);

Что касается изменения положения кнопок, создайте такой метод и просто добавьте к координатамдля того, чтобы переместить его.Например, если вы хотите переместить указанную выше кнопку на 150 пикселей вверх, вы должны сделать следующее:

button.frame = CGRectMake(button.frame.origin.x, (button.frame.origin.y - 150.0), button.frame.size.width, button.frame.size.height);

Посмотрите, что я там делал?Вы просто добавляете или вычитаете из рамки, чтобы переместить кнопки туда, куда вы хотите, чтобы они двигались.

0 голосов
/ 09 ноября 2012

Я думаю, вы должны поместить их все в tableView вместо UIScrollView (который сам является scrollView) и переопределить методы heightForRowAtIndexPath в соответствии с вашими желаниями.Возможно, вам придется написать пользовательский UITableViewCell для этого и иметь свойство, чтобы понять, выбрана ли ячейка или нет, и переключить ее внутри didSelectRowAtIndexPath.Используйте методы tableView beginUpdates и endUpdates в конце didSelectRowAtIndexPath для автоматической анимации движения других подпредставлений.

Вы также можете написать анимацию для этого, изменив источник UIButton для их перемещения, но у меня естьпопробовал это, и с таким количеством подпредставлений это становится действительно грязным, поверьте мне.Чтобы увидеть пример кода с динамической высотой строки и только с одной выбираемой ячейкой, вы можете взглянуть на: https://stackoverflow.com/a/13293380/936957. Чтобы включить множественный выбор, вы можете иметь NSMutableArray в делегате viewController / UITableView или поместить свойство вашего пользовательского UITableViewCellКак я уже говорил, оба должны работать нормально.

...