由于项目需求,需要写一个下图的tabbar,经过百度,解决方案如下
中间按钮突出
使用贝塞尔曲线来画一个tabbar的背景图,自定义一个view 重写view的drawRect方法,代码如下:
-(void)drawRect:(CGRect)rect{
CGFloat lineY =0;
CGFloat radiu =0;
CGFloat lineWidth =0.5;
lineY = rect.size.height - lineWidth -50;
radiu = (rect.size.height - lineWidth *2)/2.0;
//1.左边线条
UIColor *coloerOne = [UIColorcolorWithRed:0green:0blue:0alpha:0.5];
[coloerOne set];
//圆心到左右横线的垂直距离
CGFloat toTop = radiu - lineY + lineWidth;
//勾股定理
CGFloat all =pow(radiu,2)-pow(toTop,2);
//对边长(有两个,所以 * 2)
CGFloat x2 =sqrt(all)*2;
//线条宽度(视图宽度减去圆所占的宽度,除以2得到一边的宽度)
CGFloat line1W = (rect.size.width - x2)/2.0;
//圆左边点
CGPoint leftPoint =CGPointMake(line1W, lineY);
UIBezierPath *leftLinePath = [UIBezierPathbezierPath];
// 起点
[leftLinePath moveToPoint