如何创建类似于分割视图的控件

caulxjxys 2013-12-14 09:05:56
各位大牛,请教如何在IPHONE中设计如下界面形式的控件:


并且左侧的分类按钮是按照程序运行时解析的种类多少动态生成的? 感谢!
...全文
212 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReyZhang 2013-12-23
  • 打赏
  • 举报
回复
引用 9 楼 caulxjxys 的回复:
[quote=引用 7 楼 zhanglei5415 的回复:] 实在有需要的话,你可以外包给我。
-------------------------------------------- 呵呵 好 我记下你了 回头有好的移动端的项目 考虑外包给你[/quote] 呵呵,好的。互加关注吧。
caulxjxys 2013-12-22
  • 打赏
  • 举报
回复
引用 7 楼 zhanglei5415 的回复:
实在有需要的话,你可以外包给我。
-------------------------------------------- 呵呵 好 我记下你了 回头有好的移动端的项目 考虑外包给你
_0筱筱0_ 2013-12-17
  • 打赏
  • 举报
回复
重写tabbar就可以了 code4app上 这样的DEMO一大把.......
ReyZhang 2013-12-16
  • 打赏
  • 举报
回复
实在有需要的话,你可以外包给我。
ReyZhang 2013-12-16
  • 打赏
  • 举报
回复
接上文 创建显示如你图对应的控制器 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
ReyZhang 2013-12-16
  • 打赏
  • 举报
回复
给你个思路: 按职责分离的原则,建议左边菜单分离出一个自定义控件。该控件主要的功能是在点击某个菜品类时,能知道当前菜品的信息,并将这个动作及数据传递到它的“发送者”端。所以这个控件需要设置一个“代理” 假设如下的菜单的实体
@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
caulxjxys 2013-12-15
  • 打赏
  • 举报
回复
不好意思,这个图给的有误导作用,不是红圈里面的控件,我指的是左侧显示“冷菜类”,“海鲜类”,等等的tab,而且是根据程序中解析的内容动态显示的那种;右侧根据点击各个不同的tab,显示不同的view。
RannieR 2013-12-15
  • 打赏
  • 举报
回复
引用 2 楼 caulxjxys 的回复:
不好意思,这个图给的有误导作用,不是红圈里面的控件,我指的是左侧显示“冷菜类”,“海鲜类”,等等的tab,而且是根据程序中解析的内容动态显示的那种;右侧根据点击各个不同的tab,显示不同的view。
左侧一个tabView,右侧一个containerView,点击哪个item,先把之前container上的子视图remove掉然后将新的要显示的视图加载到container上。小三角形显示到当前点击的按钮就好。
RannieR 2013-12-14
  • 打赏
  • 举报
回复
自定义一个view 中间是显示数字的label 左右两边两个button 内部或者交给外部处理数据看这个程序需求

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧