本帖最后由 caulxjxys 于 2013-12-14 09:07:35 编辑

解决方案 »

  1.   

    自定义一个view 中间是显示数字的label 左右两边两个button 内部或者交给外部处理数据看这个程序需求 
      

  2.   

    不好意思,这个图给的有误导作用,不是红圈里面的控件,我指的是左侧显示“冷菜类”,“海鲜类”,等等的tab,而且是根据程序中解析的内容动态显示的那种;右侧根据点击各个不同的tab,显示不同的view。
      

  3.   


    左侧一个tabView,右侧一个containerView,点击哪个item,先把之前container上的子视图remove掉然后将新的要显示的视图加载到container上。小三角形显示到当前点击的按钮就好。
      

  4.   

    给你个思路:
    按职责分离的原则,建议左边菜单分离出一个自定义控件。该控件主要的功能是在点击某个菜品类时,能知道当前菜品的信息,并将这个动作及数据传递到它的“发送者”端。所以这个控件需要设置一个“代理”
    假设如下的菜单的实体
    @interface MenuItem:NSObject
    @property (nonatomic) NSInteger MenuID;
    @property (strong) NSString *MenuName; 
    @end这个代理协议需要在点击某个菜品类时需要传递的数据,应该有菜单索引,及菜单实体@protocol MenuItemDelegate: <NSObject>
    -(void)menuItemDidSelected:(MenuItem *)item index:(NSInteger)index;
    @end这个控件大体应该这样
    @protocol MenuItemDelegate
    @class MenuItem;
    @interface LeftMenuControl:UIView
    @property (strong) NSMutableArray *items; /////store all of the menu item
    @property (nonatomic,weak) id<MenuItemDelegate> delegate;
    @end在它的实现文件中应该这样
    @implementation LeftMenuControl////当其中某个menu的button被选中时的事件处理
    -(void)menuSelected:(id)sender {
       UIButton *menuBtn=(UIButton *)sender;
       NSInteger index=menuBtn.tag;
       if ([self.delegate isRespondToSelector:@selector(menuItemDidSelected:index:)]) {
            [self delegate menuItemDidSelected:[self.items objectAtIndex:index] index:index];
       }
    }
    @end
      

  5.   

    接上文创建显示如你图对应的控制器 SelectMenuViewController#import "LeftMenuControl"
    @interface SelectMenuViewController:UIViewController <MenuItemDelegate>@property (strong) LeftMenuControl *leftMenu;
    @end--------------------实现---------------------
    #import "MenuItem"
    @implementation SelectMenuViewController-(void)viewDidLoad {
        leftMenu=[[LeftMenuControl alloc] initWithFrame:.....];
        NSMutableArray *items=@{@{MenuID:1,MenuName:@"冷菜类"},@{MenuID:2,MenuName:@"海鲜类"}}; ////此处省略300字
      [leftMenu setItems:items];
        [leftMenu setDelegate:self];  ////设置代理
       
    }//////在控制器中实现协议方法
    -(void) menuItemDidSelected:(MenuItem *)item index:(NSInteger)index {
       NSLog("you selected menu is :%@  at index:%d",[item description] , index);
    }
    @end
      

  6.   

    重写tabbar就可以了 code4app上 这样的DEMO一大把.......