iOS开发-圆形矩形按钮向下移动以显示子菜单

iOS开发-圆形矩形按钮向下移动以显示子菜单,ios,xcode,button,menu,rect,Ios,Xcode,Button,Menu,Rect,我花了大约3个月的时间试图解决一个问题,最后终于求助于他人。我有一个带有5个圆形矩形按钮的菜单。我想知道,当我点击第一个按钮时,是否有一种方法可以做到这一点,其他四个按钮向下移动,为第一个按钮下的子菜单创建空间。第二、第三、第四和第五个按钮也是如此。然而,同时,我想让它成为这样,如果第一个按钮被点击,其他四个向下移动,并且说第三个按钮被点击,四个和五个向下移动,当它们不能同时在屏幕上显示时,滚动视图启动。提前感谢您的帮助:)。事实上,您可以这样做。这里有一个例子。jist是您制作一个新的iAct

我花了大约3个月的时间试图解决一个问题,最后终于求助于他人。我有一个带有5个圆形矩形按钮的菜单。我想知道,当我点击第一个按钮时,是否有一种方法可以做到这一点,其他四个按钮向下移动,为第一个按钮下的子菜单创建空间。第二、第三、第四和第五个按钮也是如此。然而,同时,我想让它成为这样,如果第一个按钮被点击,其他四个向下移动,并且说第三个按钮被点击,四个和五个向下移动,当它们不能同时在屏幕上显示时,滚动视图启动。提前感谢您的帮助:)。

事实上,您可以这样做。这里有一个例子。jist是您制作一个新的iAction,当您按下按钮时,它将显示坐标。因此,如果您有按下按钮时发生什么的方法,只需将以下内容添加到其中:

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);

看到我在那里做了什么吗?您只需在框架中添加或减去按钮,即可将按钮移动到所需位置。

我认为您应该将它们全部放在tableView中,而不是UIScrollView(它本身就是一个滚动视图)中,并根据您的意愿覆盖
heightForRowAtIndexPath
方法。您可能需要为此编写一个自定义UITableViewCell,并拥有一个属性来了解该单元格是否被选中,并在
didSelectRowatineXpath
中切换它。在
didSelectRowAtIndexPath
末尾使用tableView的BeginUpdate和EndUpdate方法自动设置其他子视图移动的动画


您也可以通过更改UIButtons的原点来移动它们来为此编写动画,但我已经尝试过了,因为子视图的数量太多,所以会变得非常混乱,相信我。要查看具有动态行高且只有一个可选单元格的示例代码,请查看:。若要启用多个选择,您可以在VIEW Controller /UITababVIEW的委托中拥有NSMutabReLayRead,或者放置自定义UITableViewCell的属性,就像我之前所说的,两者都应该工作得很好。

这取决于您是否需要它,但这将为您提供基础。不过,还有一个简单的问题,当第二次按下按钮时,一切都会回到原位,我该怎么做?提前感谢:)添加另一种方法,该方法减去/添加您更改的精确坐标以将其取消,并将更改恢复为0,使其恢复原位。如果这个方法对你有帮助,别忘了打勾=]别担心…我打勾是因为它确实帮了我很多忙:)但是我仍然不知道如何添加这个方法。下面是我要做的:1。在连接到按钮按下操作2的方法中声明一个默认为false的布尔值。添加一个条件,检查布尔值是否为false,如果为false,则在按下原始按钮后移动其他按钮,一旦它们移动,将布尔值设置为true。3.在条件的第二部分中,检查布尔值是否为真,如果为真,则在按下原始按钮后通过取消移动按钮的坐标将按钮移回,然后让此条件将布尔值设置回假。