美文网首页
关于小控件以及小细节UI效果实现整理

关于小控件以及小细节UI效果实现整理

作者: 旧雨伞时 | 来源:发表于2016-08-05 16:15 被阅读0次

    开发中总是避免不了自己封装一些小工具, 虽然一般不是自己完全自定义的, 但里面的部分效果还是需要自己琢磨修改的.
    比如常用的datePicker, 中间两行的分割线颜色是可以修改的. 目前最合理的修改方案如下:

    - (void)changeSeparatorWithView:(UIView *)view
    {
        if(view.subviews != 0)
        {
            if(view.bounds.size.height < 5)
            {
                view.backgroundColor = [UIColor colorWithRed:74 / 255.0 green:181 / 255.0 blue:243 / 255.0 alpha:1];
            }
            [view.subviews enumerateObjectsUsingBlock:^(UIView *obj, NSUInteger idx, BOOL *stop) {
                [self changeSeparatorWithView:obj];
            }];
        }
    }
    

    关于使用"贝塞尔曲线"画图,
    在代码中我们直接在.m中实现"-(void)drawRect:(CGRect)rect"这个方法即可, 无需在声明及其它接口方法中调用.
    但是要明确一点, 就是视图frame一定要提前设置好, 不然图形画不出来, 是不走这个方法的.
    下面就记录一段绘制三角形的代码:

    -(void)drawRect:(CGRect)rect
    {
        // Drawing code  通过贝塞尔曲线绘制三角形
        
        //定义画图的path
        UIBezierPath *path = [[UIBezierPath alloc] init];
        
        //path移动到开始画图的位置
        [path moveToPoint:CGPointMake(rect.origin.x, rect.origin.y)];
        //从开始位置画一条直线到(rect.origin.x + rect.size.width, rect.origin.y)
        [path addLineToPoint:CGPointMake(rect.origin.x + rect.size.width, rect.origin.y)];
        //再从rect.origin.x + rect.size.width, rect.origin.y))画一条线到(rect.origin.x + rect.size.width/2, rect.origin.y + rect.size.height)
        [path addLineToPoint:CGPointMake(rect.origin.x + rect.size.width/2, rect.origin.y + rect.size.height)];
        
        //关闭path
        [path closePath];
        
        //三角形内填充颜色
        [[UIColor colorWithRed:74 / 255.0 green:181 / 255.0 blue:243 / 255.0 alpha:1] setFill];
        
        [path fill];
        // //三角形的边框为红色
        // [[UIColor clearColor] setStroke];
        // [path stroke];
    }
    

    相关文章

      网友评论

          本文标题:关于小控件以及小细节UI效果实现整理

          本文链接:https://www.haomeiwen.com/subject/oenhsttx.html