UICollectionView怎么才能让他的cell等间距啊

[复制链接]
180 1
UICollectionView怎么才能让他的cell等间距啊 我是新人 第一次写这个 搞不太懂 搞出来cell大小自适应之后 cell之间的等间距就懵逼了 各位大神 求帮助 谢谢了

举报 使用道具

回复

1 个评论

wenq0403  新手上路  发表于 2019-2-10 06:41:45  | 显示全部楼层
这个东西没必要用collection写的。。给你看一个.m文件的代码吧,其中有几个宏虽然定义在别的文件没贴过来,但基本上能懂是干嘛的。。
关键看核心实现就行了。。
代码
```
@interface DMSHotSearchKeysView ()



@property (nonatomic,weak) UIView *lastButton;



@property (nonatomic,copy) NSArray *keys;



@end



#define ButtonHeight 25

#define TitleFont [UIFont dms_fontWithStyleDMSFontStyleLight) size:10]

#define Margin 12



@implementation DMSHotSearchKeysView



+ (instancetype)hotSearchKeysViewNSArray *)keys

{

    return [[self alloc] initHotSearchKeysView:keys];

}



- (instancetype)initHotSearchKeysViewNSArray *)keys

{

    if (self = [super initWithFrame:CGRectMake(0, 0, Main_Screen_Width, CGFLOAT_MAX)]) {

        

        self.selectionStyle = 0;

        self.keys = keys;

        

        for (NSInteger i = 0; i < keys.count; i ++) {

            UIButton *keyButton = [self keyButton:keys<i>];

            CGRect buttonFrame = CGRectZero;

            

            CGFloat width = [self widthOfString:keys<i>];

            

            if (i == 0) {

                CGFloat x = Margin;

                CGFloat y = Margin;

                CGFloat height = ButtonHeight;

                buttonFrame = CGRectMake(x, y, width, height);

               

            } else {

               

                if (self.lastButton.MaxX + width + Margin*2 > Main_Screen_Width) { //换行

                    CGFloat x = Margin;

                    CGFloat y = self.lastButton.MaxY + Margin;

                    CGFloat height = ButtonHeight;

                    buttonFrame = CGRectMake(x, y, width, height);

                    

                } else {

                    CGFloat x = self.lastButton.MaxX + Margin;

                    CGFloat y = self.lastButton.y;

                    CGFloat height = ButtonHeight;

                    buttonFrame = CGRectMake(x, y, width, height);

                }

               

            }

            

            keyButton.tag = i + 100;

            keyButton.frame = buttonFrame;

            [self addSubview:keyButton];

            self.lastButton = keyButton;

        }

        

        self.height = self.lastButton.MaxY + Margin;

        

    }

    return self;

}



- (UIButton *)keyButtonNSString *)name

{

    UIButton *key = [UIButton buttonWithTypeUIButtonTypeCustom)];

    [key setTitle:name forStateUIControlStateNormal)];

    key.titleLabel.font = TitleFont;

    [key setTitleColor:SubTextColor forStateUIControlStateNormal)];

    [key addTarget:self actionselector(chooseKey forControlEventsUIControlEventTouchUpInside)];

    ViewBorderRadius(key, ButtonHeight/2, 1, LineColor);

    return key;

}



- (CGFloat)widthOfStringNSString *)str

{

   

    CGFloat width = [str boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, ButtonHeight) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes{NSFontAttributeName:TitleFont} context:nil].size.width + Margin * 3;

   

    return width;

}



- (void)chooseKeyUIButton *)sender

{

    NSString *key = self.keys[sender.tag - 100];

   

    self.searchBlock(key);

}



@end



```

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表