Closed iT-Boyer closed 3 years ago
当
treeArr
根据条件变更,元素数不同。调用如下更新方式,无法根据不同的内容更新菜单的高度。[self.menu updateData:treeArr AtDropIndexPathSection:section AtDropIndexPathRow:0];
请教下,使用什么方式可以同时适配高度?
适配什么高度 列表的高度吗 这个高度还要动态变化吗 你可以试着在数组里去改视图的高度 例如 [menu.showView enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[WMZDropTableView class]]) { 。。。 } }];
使用图片描述下更新高度的场景: 商圈:有多个选项,商场:只有一个选项。 当切换到商场时,下次进入菜单的总高度高度只有一个选项的高度。这样切换到商圈时,需要更新菜单的高度。 我尝试在商圈/商场切换时调用下面的方法,没有作用。
//更新高度
[menu.showView enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[WMZDropTableView class]]) {
WMZDropTableView *tblview = (WMZDropTableView *)obj;
tblview.frame = CGRectMake(tblview.frame.origin.x, tblview.frame.origin.y, tblview.frame.size.width, MAINHEIGHT*0.4);
}
}];
//更新数据
[self.menu updateData:treeArr AtDropIndexPathSection:section AtDropIndexPathRow:0];
自定义headview时,实现头部高度时,出现偶现的问题:headview下面会多出等高的区域
/**
实现这个代理会出现问题,莫名多出头部高度,暂时用默认高度35
*/
- (CGFloat)menu:(WMZDropDownMenu *)menu heightForHeadViewAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath
{
NSDictionary *dic = self.menu.titleArr[dropIndexPath.section];
NSString *name = [dic objectForKey:@"name"];
if ([name hasPrefix:@"商圈"]) {
return 40;
}
return 0;
}
使用图片描述下更新高度的场景: 商圈:有多个选项,商场:只有一个选项。 当切换到商场时,下次进入菜单的总高度高度只有一个选项的高度。这样切换到商圈时,需要更新菜单的高度。 我尝试在商圈/商场切换时调用下面的方法,没有作用。
//更新高度 [menu.showView enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[WMZDropTableView class]]) { WMZDropTableView *tblview = (WMZDropTableView *)obj; tblview.frame = CGRectMake(tblview.frame.origin.x, tblview.frame.origin.y, tblview.frame.size.width, MAINHEIGHT*0.4); } }]; //更新数据 [self.menu updateData:treeArr AtDropIndexPathSection:section AtDropIndexPathRow:0];
我看了一下 我会自动适配高度的呀 你看那个赶集网demo 第一个和第二个 弹出来的视图高度是自动适配的
嗯,我看下赶集网的样式,是连个菜单下自适应的高度。
我想描述的是针对一个菜单下的menu.showView
中的tableView
根据内容自适应高度。
上述说的商场
和商圈
是更新这个tableView
的数据源,但是高度没有自适应,导致数据无法正常展示。
为解决数据展示正常,想到了两种方法:
嗯,我看下赶集网的样式,是连个菜单下自适应的高度。 我想描述的是针对一个菜单下的
menu.showView
中的tableView
根据内容自适应高度。 上述说的商场
和商圈
是更新这个tableView
的数据源,但是高度没有自适应,导致数据无法正常展示。为解决数据展示正常,想到了两种方法:
- 针对当前tableView实现自动适配高度。
- 禁止自动适配,设置菜单最大高度。 针对方法2,有开放的属性的吗?
可以加下群 我这里没怎么看
在初始化menu时,设置入参:固定下拉框的高度:
//自定义弹出视图frame
.wCustomDataViewRectSet(^CGRect(CGRect currentRect) {
currentRect.size.height = MAINHEIGHT*0.4;
return currentRect;
})
动态更新dataView和showView中的tableView的高度
CGRect newFrame = self.menu.dataView.frame;
newFrame.size.height = MAINHEIGHT*0.4;
self.menu.dataView.frame = newFrame;
[self.menu.showView enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[WMZDropTableView class]]) {
WMZDropTableView *tblview = (WMZDropTableView *)obj;
CGRect tbFrame = tblview.frame;
tbFrame.size.height = MAINHEIGHT*0.4;
tblview.frame = tbFrame;
}
}];
当
treeArr
根据条件变更,元素数不同。调用如下更新方式,无法根据不同的内容更新菜单的高度。请教下,使用什么方式可以同时适配高度?