wangmchn / WMPageController

An easy solution to page controllers like NetEase News
MIT License
2.92k stars 627 forks source link

在2.4.3中如何设置menuview的背景颜色,未选中时的背景颜色 #415

Open garfieldxixixi opened 6 years ago

jiananMars commented 6 years ago

调用VC以后,找到了progressViewWidths

garfieldxixixi commented 6 years ago

StyleFlood未选中背景颜色 和progressViewWidths没有关系吧··

FightingEveryDay commented 6 years ago

同问,卡在了menuview背景颜色.选中和未选中的背景颜色改变不了.请及时处理啊~~~

wangmchn commented 6 years ago

在viewDidLoad之后,使用menuView.progressView.backgroundColor = xxColor?? 可以参考 https://github.com/wangmchn/WMPageController/issues/408

FightingEveryDay commented 6 years ago

不行啊.感觉需要修改框架了..我的Controller继承的是UIViewController,修改继承,在viewdidload中更改,不起作用,我试了好多代理,目前还没有找到解决方法.感觉作者还是需要做一个属性,selectBackgroundColor和一个normalBackgroundColor.另外感谢作者提供这么好的框架

FightingEveryDay commented 6 years ago

不,应该说是 selectItemBackgroundColor和normalItemBackgroundColor,需要这两个属性.menuVIew是这两个的父视图.这样作者应该理解了吧?

FightingEveryDay commented 6 years ago

@garfieldxixixi 可以用menuView的代理试试,但是实现有点问题. 我的代理设置在- (CGRect)pageController:(WMPageController )pageController preferredFrameForMenuView:(WMMenuView )menuView中

  • (void)menuView:(WMMenuView )menu didSelesctedIndex:(NSInteger)index currentIndex:(NSInteger)currentIndex { WMMenuItem oldItem = [menu itemAtIndex:currentIndex]; oldItem.backgroundColor = [UIColor grayColor]; WMMenuItem *newItem = [menu itemAtIndex:index]; newItem.backgroundColor = [UIColor whiteColor]; }
garfieldxixixi commented 6 years ago

@FightingEveryDay 在 WMProgressView - (void)drawRect:(CGRect)rect {}方法内 UIBezierPath path 前面添加 可以先描绘了一层的颜色作为底色
CGFloat startXitem = CGRectGetMinX([self.itemFrames.firstObject CGRectValue]); CGFloat endXitem = CGRectGetMaxX([self.itemFrames.lastObject CGRectValue]); UIBezierPath
bgpath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(startXitem, lineWidth / 2.0, (endXitem - startXitem), height - lineWidth) cornerRadius:self.cornerRadius]; CGContextAddPath(ctx, bgpath.CGPath); CGContextSetFillColorWithColor(ctx, RGBFromHex(0xb8d7f4).CGColor); CGContextFillPath(ctx);

FightingEveryDay commented 6 years ago

@garfieldxixixi 不行,可能是我没有使用progressView,我用那个代理设置的话,item的视图会变形.所以我现在什么都没整了.坐等作者改好,当一次伸手党了 = =!作者勿怪啊~~~新项目开发中.忙..回家研究研究