UITableView中cell的圆角(第一个和最后一个)

自定义半圆形视图的实现与应用
本文介绍了一个自定义的半圆形视图组件的实现方式,并详细阐述了如何通过参数调整来改变其显示形态。具体展示了该组件在不同场景下的应用,包括根据数据项的位置动态调整半圆形的位置,从而实现更丰富的界面展示效果。
#import <UIKit/UIKit.h>

@interface SemicircleView : UIView


/**
 *  传入数值(改变圆角位置)
 *
 *  @param index 0:下,1:上,2,上下,3无
 
*/
- (void)upOrdownsemicirc:(NSInteger)index;

@end

 

 

#import "semicircleView.h"

@interface SemicircleView () {
    NSInteger _width;
    NSInteger _height;
    CGFloat _angle;
    UIView *_viewDetal;
}

@end

@implementation SemicircleView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        _width = frame.size.width;
        _height = frame.size.height;
        self.backgroundColor = [UIColor whiteColor];
        [self initView];
    }
    return self;
}

- (void)initView {
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(00, _width, _height)];
    //[UIColor colorWithHexString:@"f3f3f3"];
    view.backgroundColor = [UIColor colorWithHexString:@"f3f3f3"];
//    view.backgroundColor = [UIColor redColor];
    view.layer.cornerRadius = 10;
    view.clipsToBounds = YES;
    
    _viewDetal = [[UIView alloc]initWithFrame:CGRectMake(00, _width, _height/2)];
    _viewDetal.backgroundColor = [UIColor colorWithHexString:@"f3f3f3"];
//    _viewDetal.backgroundColor = [UIColor redColor];
    [self addSubview:view];
    [self addSubview:_viewDetal];
}

- (void)upOrdownsemicirc:(NSInteger)index {
    switch (index) {
        case 0:
            _viewDetal.frame = CGRectMake(00, _width, _height/2);
            break;
        case 1:
            _viewDetal.frame = CGRectMake(0, _height/2, _width, _height/2);
            break;
        case 2:
            _viewDetal.frame = CGRectMake(0000);
            break;
        case 3:
            _viewDetal.frame = CGRectMake(00, _width, _height);
            break;
        default:
            break;
    }
}

 

 使用:

  if (indexPath.row == 0) {
         [cell.semic upOrdownsemicirc:1];
    }else if (indexPath.row == self.dataSource.count-1) {
        [cell.semic upOrdownsemicirc:0];
    }else {
        [cell.semic upOrdownsemicirc:3];
    }

 

效果图:

 

转载于:https://www.cnblogs.com/hxwj/p/4585725.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值