创建像新的facebook 3.0应用程序必须提供的主页的方法是什么?如果你看这里有一个3x3 UIButton的网格:
alt text http://cache0.techcrunch.com/wp-content/uploads/2009/08/img_0318.png
如果你想复制一个类似的用户界面,你会以编程方式将9个单独的按钮通过某种循环放在屏幕上吗?如果是这样,循环会是什么样的?
您是否会将一个图像和硬编码坐标放入数组中以查看用户的输入位置并采取适当的措施?
答案 0 :(得分:1)
http://github.com/joehewitt/three20/tree/master
这是Joe Hewitt在制作iPhone Facebook 3.0应用程序的过程中创建的开源库。这是我要开始的地方。
答案 1 :(得分:1)
Joel指向Three20的指针是最好的建议 - 这是Joe在创建Facebook.app的过程中开源的库。
就你通常如何做而言,这是我的2美分:
您有一个UIScrollView
(请注意,可以有多个按钮页面),每个按钮都有一个YourAppButtonGridView
。每个YourAppButtonGridView
只有一个按钮数组,并将它们放在一个网格中(在layoutSubviews
方法中写入)。使用UITabBarItem
的加分点,具有相似的外观和感觉。
答案 2 :(得分:1)
对于我的Application Capsuleer,我有一个类似的“主页”屏幕。
在我的代码中,我构建了一个包含每个按钮属性的结构。 比如:
然后我创建了这些结构的数组,并使用每个按钮的详细信息对它们进行初始化。
我的视图代码然后循环遍历此数组并构建按钮(它设置所有默认属性 - 背景图像,字体等)。
我目前没有多个页面,但随着我扩展应用程序并添加更多功能,我将填补当前未使用的框。当我到达一个点,我有更多适合在一个屏幕上,我只是将支持视图从UIView切换到UIScrollView并添加一个分页控件。
所有这些都是在代码中完成的。我根本不使用界面构建器。
它对我的目的非常有效,当我添加新区域时我必须改变的是调整一些代码行,其中我初始化我的结构数组,现有代码完成剩下的工作。
希望有所帮助。
克里斯。
答案 3 :(得分:0)
我必须做类似的事情。我创建了一个自定义按钮类,然后执行了这个循环
for (int i=1;i <= [OGViewControllers numberOfControllers];i++) {
aButton = [[OGMoreButtonView alloc] initWithIcon:[OGViewControllers iconForViewControllerWithIndex:i]
andTitle:[OGViewControllers titleForViewControllerWithIndex:i]];
aButton.frame = CGRectMake(((i-1)%4) * 80.0, ((i-1)/4) * 65.0, 80.0, 65.0);
aButton.tag = i;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemSelected:) name:@"AMoreButtonWasTouched" object:aButton];
[self.view addSubview:aButton];
[aButton release];
}
如果您希望滚动影响与页面指示器一起在640宽度的滚动视图中抛出它并为滚动视图打开分页并将委托设置为self,那么执行类似这样的操作
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { int oldPage = [pageControl currentPage];
[pageControl setCurrentPage:(int)(([scrollView contentOffset].x/320)+0.5)];
if (oldPage != [pageControl currentPage]) [[NSNotificationCenter defaultCenter] postNotificationName:@"OGSwipeViewItemChanged" object:nil];
}
答案 4 :(得分:-1)
我不熟悉应用程序,但从查看图像我会说一种方法是使用Interface Builder在导航的根视图中布置9个自定义UIButton(其中包含您自己的UIImages)控制器然后连接每个的IBAction(内部触摸)以在堆栈上推送新的视图控制器。再说一次,我不使用脸谱,所以不能肯定地说它是如何连接在一起的。
答案 5 :(得分:-1)
首先使用界面构建器来使一切正常运行。只需从界面构建器中拖放东西,就可以完成大部分工作。
稍后您可以使用其他绘图技术增强用户界面。
(注意:在原始海报改变他们的问题之前,这个答案更为相关)