目前我正在通过“插槽”进行操作,这些插槽将被分配按钮,这些按钮是从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%肯定这不是这样做的方式,正如你可以想象的那样,在不止一些插槽的情况下,那里的意大利面很快就会失控。所以我的问题是:做我正在尝试的传统方式是什么?
答案 0 :(得分:0)
我在500px iPad app中编写了一个类似的用户界面 - 滚动视图中的一系列按钮。我发现this tutorial非常有帮助;它描述了如何使用有限数量的视图创建这种“无限”循环滚动视图。
plist似乎有些过分,但如果您希望用户编辑它以控制内容,则可能有意义。我想如果你有动态内容,那可能就是你要走的路。如果它总是相同的按钮,你可以只添加按钮作为实例变量,甚至是一组实例变量。