我工作的一个项目中,有一个自定义UINavigationBar的要求。期望的效果是在导航控制器中包含的视图堆栈上的可视化。自定义导航栏在iOS的
试想一下,每个查看您向前移动一个新的按钮出现在导航栏为您刚刚离开例如视图
查看1 >>查看2 >>查看3
我在创建自定义可重复使用的iOS组件相当舒适,但我听别人会如何处理这项任务很感兴趣。
我现在正在运行的实例是UIView的子视图,并且在init中,我通过为委托类提供的字典数组中详细的条目添加UIButtons来创建导航栏。
在psudeo代码:
@protocol NavDelegate
- (void)UIButtonClicked;
@end
@protocol NavDataSource
- (NSMutableArray *)arrayOfDictionaries;
@end
@interface Navbar : UIView
<NavDelegate,NavDataSource>
{
//create and synthesize delegate and datasource objects
}
@end
@implementation NavBar
- (id)init
{
//override and instantiate necessary objects
}
- (void)layoutSubviews
{
//here I use the number of dictionaries in the delegate returned array to add UIButtons to
//a UIView adding control events for when the button is clicked
}
@end
它的工作原理,但我不能帮助的感觉,还有一个更优雅的解决方案在那里。
我也很想听到的话,人们认为这是应该避免的做法。我不愿意“重新发明轮子”,但项目利益相关方认为这是一个很好的用户界面元素。如果意见的浪潮是“不惜一切代价避免”,那么我肯定会把这个论点回复给他们。
在此先感谢球员
他们既不是 - 这可能会导致一些混乱。当我输入问题时,我差点回答自己。这感觉不对,它看起来也很糟糕!我想我会回头试图说服他们,在苹果核心UI元素的形状中有更好的解决方案。 – JordanMazurke
好计划。我经常告诉人们,他们认为“非常棒”与苹果的HIG完全相反。这往往是有说服力的。祝你好运! –
只是为了让你知道...他们放弃了这个主意!很高兴遇到愿意听取您建议的客户。 – JordanMazurke