filippocamillo/FCVerticalMenu

Customize Appearance

Opened this issue · 4 comments

I am unable to customize properties such as textColor, font and borderColor.

I tried with the Menu as well as each individual item. I also tried disabling NavBar Appearance to no avail. I really like this control but customizing appearance is pretty important. What am I doing wrong please?

For text color & font , i did a small workaround
FCVerticalMenu* item1 = ...
FCVerticalMenu *verticalMenu = ...initWithItems[item1];
item1.textColor =[UIColor blackColor];
item1.font = ...
...
..
..
[verticalMenu show...];

+1

Problem is caused by the -(UIImage *)image:(UIImage *)img withColor:(UIColor *)color method of FCVerticalMenuItemCollectionViewCell.
Replace that with following:

-(UIImage *)image:(UIImage *)img withColor:(UIColor *)color
 {
    if (color) {
        // Construct new image the same size as this one.
        return [img imageWithColor:color];
    }
return img;
}

And add following method to UIImage as category

- (UIImage *)imageWithColor:(UIColor *)color1
{
    UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, 0, self.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);
    CGContextSetBlendMode(context, kCGBlendModeNormal);
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextClipToMask(context, rect, self.CGImage);
    [color1 setFill];
    CGContextFillRect(context, rect);
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

I had to change colors in init method of FCVerticalMenu class because it seems like properties you set after init has no effect.

I can't see the liveBlur feature targeting 8.0.

This is my code:

self.verticalMenu = FCVerticalMenu(items: [item1, item2, item3])
self.verticalMenu.backgroundAlpha = 0.5
self.verticalMenu.borderColor = UIColor(red: 77/255, green: 81/255, blue: 94/255, alpha: 1)
self.verticalMenu.appearsBehindNavigationBar = true
self.verticalMenu.delegate = self

self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "menu-icon"), style: .Bordered, target: self, action: Selector("openVerticalMenu:"))

self.verticalMenu.liveBlur = true
self.verticalMenu.liveBlurTintColor = UIColor.blackColor()
self.verticalMenu.liveBlurBackgroundStyle = .BlackTranslucent

self.navigationItem.titleView = UIImageView(imageNamed: "Squeaker_Logo_Heading")
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.backgroundColor = UIColor(red: 77/255, green: 81/255, blue: 94/255, alpha: 1)
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()

UITabBar.appearance().backgroundColor = UIColor.blackColor()
UITabBar.appearance().selectedImageTintColor = UIColor.whiteColor()
UITabBar.appearance().barTintColor = self.navigationController?.navigationBar.backgroundColor