要实现图中   关键字   的实现可用下面代码

- (void)initLayout {
    self.keywordLabel = [[UILabel alloc] init];
    self.keywordLabel.textColor = [UIColor grayColor];
    self.keywordLabel.font = [UIFont systemFontOfSize:];
    self.keywordLabel.text = @"关键字:";
    [self.contentView addSubview:self.keywordLabel];
    [self.keywordLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.contentView).offset();
        make.left.equalTo(self.contentView).offset();
        make.width.mas_offset();
    }];

    self.buttonArray = @["].mutableCopy;
    ;
    ; i < self.buttonArray.count; i++) {
//        创建button
        UIButton *button = [[UIButton alloc] init];
        [self.arr addObject:button];
//        背景颜色
        button.backgroundColor = [UIColor orangeColor];
//        字
        [button setTitle:self.buttonArray[i] forState:UIControlStateNormal];
        button.titleLabel.textAlignment = NSTextAlignmentCenter;
        button.titleLabel.font = [UIFont systemFontOfSize:];
//        计算宽度
        CGFloat width = [SmallTools textWidthWithText:self.buttonArray[i] font:[UIFont systemFontOfSize:]];
        ) {
            CGFloat upWidth = [SmallTools textWidthWithText:self.buttonArray[i - ] font:[UIFont systemFontOfSize:]];
            UIButton *arrButton = self.arr[i - ];
         > [UIScreen mainScreen].bounds.size.width) {
                button.frame = CGRectMake(, j *  + , width + , );
                j++;
        }else {
            button.frame = CGRectMake( arrButton.frame.origin.x + upWidth + ,  * (j - ) + , width + , );
        }
        [self.contentView addSubview:button];
        } else {
            button.frame = CGRectMake(, , width + , );
            [self.contentView addSubview:button];
        }
    }
    _numberOfButton = j;
}

SmallTools.h

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface SmallTools : NSObject

// 根据输入尺寸修改图片大小,并返回UIImage
+ (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size;

// 声明类方法用来计算文本高度
+ (CGFloat)textHeightWithText:(NSString *)text font:(UIFont *)font;

// 声明类方法用来计算图片的高度
+ (CGFloat)imageHeightWithImage:(UIImage *)image;

// 声明类方法用来计算文本宽度
+ (CGFloat)textWidthWithText:(NSString *)text font:(UIFont *)font;

@end

SmallTools.m

#import "SmallTools.h"

@implementation SmallTools

+ (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{
    UIGraphicsBeginImageContext(size);
    [img drawInRect:CGRectMake(, , size.width, size.height)];
    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}

// 计算文本高度
+ (CGFloat)textHeightWithText:(NSString *)text font:(UIFont *)font {

    // iOS7.0中求文本高度的方法,返回一个CGRect的高度

    // 第一个参数
    CGSize size = CGSizeMake([UIScreen mainScreen].bounds.size.width, );

    // 第二个参数:设置以行高为单位
    CGRect rect = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : font} context:nil];

    return rect.size.height;
}

// 计算图片高度
+ (CGFloat)imageHeightWithImage:(UIImage *)image {

    CGFloat width = image.size.width;
    CGFloat height = image.size.height;
    //    float scile = height / width;
    //
    //    float screenH = [UIScreen mainScreen].bounds.size.width;

    NSLog(@"%f", width);
    //    return  scile * screenH;
    return height / width * [UIScreen mainScreen].bounds.size.width;
}

// 计算文本高度
+ (CGFloat)textWidthWithText:(NSString *)text font:(UIFont *)font {

    // iOS7.0中求文本高度的方法,返回一个CGRect的高度

    // 第一个参数
    CGSize size = CGSizeMake(, );

    // 第二个参数:设置以行高为单位
    CGRect rect = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : font} context:nil];

    return rect.size.width;
}

@end

代码多谢我家黑妹的帮助

最新文章

  1. Difference Between HashMap and IdentityHashMap--转
  2. IOS 如何隐藏tabbar
  3. PDF转换成二进制字符串写入 HTTP 输出流
  4. Linux内核里的DebugFS
  5. oracle 数据库学习
  6. CodeForces 685B Kay and Snowflake
  7. linux 自动备份脚本
  8. chorme浏览器的Access-Control-Allow-Origin拦截限制
  9. Wireshark理解TCP乱序重组和HTTP解析渲染
  10. java读取文件乱码
  11. redis学习资料
  12. 分组\聚合\F\Q查询
  13. php添加pdo_mysql.so的扩展
  14. 【数据结构】约瑟夫问题 C语言链表实现
  15. Java基础语法 第4节 常见软件安装-Mysql和SQLyog
  16. MySQL事物系列:2:事物的实现
  17. VMware vCenter Server 6.5.0 U1g
  18. Dropping water balloons (入门dp)
  19. Linq To Object多字段组合唯一校验
  20. OC property(声明)

热门文章

  1. iOS开发 改变UINavigationController的UINavigationBar的高度和背景图片
  2. app间互相启动及传参数
  3. S3C2440硬件连接解析
  4. 「LINUX资料」简单实用命令less和vi(三)
  5. 安卓弹出对话框——Alertdialog(一)
  6. SVN简明课程
  7. CentOS6.5编译安装Redis
  8. 拓扑排序(Topological)
  9. Hao Yin Jian 寒假第一周
  10. robotium从入门到放弃 二 第一个实例