在滚动视图中实现用户可重新排列按钮的最佳方式



目前,我通过拥有将被分配按钮的"slots"来完成这项工作,这些按钮是从plist中读取的。例如,

switch ([slot1 intValue]) {
            case 1:
                button1 = [wtb twitterButtonType];
                [button1 addGestureRecognizer:twitterButtonTap];
                break;
            case 2:
                button1 = [wtb facebookButtonType];
                [button1 addGestureRecognizer:faceBookButtonTap];
                break;
            case 3:
                button1 = [wtb SMSButtonType];
                [button1 addGestureRecognizer:smsButtonTap];
                break;
            case 4:
                button1 = [wtb phoneButtonType];
                [button1 addGestureRecognizer:instaCallButtonTap];
                break;
            case 5:
                button1 = [wtb cameraButtonType];
                [button1 addGestureRecognizer:cameraButtonTap];
                break;
            case 6:
                button1 = [wtb torchButtonType];
                [button1 addGestureRecognizer:flashButtonTap];
                break;
            case 7:
                button1 = [wtb pastieButtonType];
                [button1 addGestureRecognizer:pastieButtonTap];
                break;
            case 8:
                button1 = [wtb powerButtonType];
                [button1 addGestureRecognizer:powerButtonTap];
                break;
            default:
                button1 = nil;
                allocSlot1 = NO;
                break;
        }

现在我几乎100%确信这不是这样做的,正如你可以想象的那样,有了几个插槽,上面的意大利面很快就会失控。所以我的问题是:做我正在尝试的事情的传统方式是什么?

我在500px的iPad应用程序中编写了一个类似的UI——滚动视图中的一系列按钮。我发现这个教程很有帮助;它描述了如何用有限数量的视图创建这种"无限"循环滚动视图。

plist似乎有些过头了,但如果你希望用户编辑它来控制内容,它可能是有意义的。我认为,如果你要拥有动态内容,那可能就是最好的选择。如果总是相同的按钮,则可以添加按钮作为实例变量,甚至是实例变量数组。

最新更新