循环创建btn+使用imageEdgeInsets约束+设置图片大小
来源:互联网 发布:淘宝书城 编辑:程序博客网 时间:2024/06/05 00:36
//设置btn的图片标题位置
-(void)addBtnsWithImages:(NSArray *)images btnTitles:(NSArray *)titles
{
CGRect frame = self.containerView.frame;
self.imageArray = images;
self.titleArray = titles;
CGFloat imageH =30;
CGFloat labWidth = frame.size.width/self.imageArray.count;
for (int i =0; i < self.imageArray.count; i++) {
UIButton *btn = [UIButtonbuttonWithType:UIButtonTypeCustom];
btn.tag =DefaultTag + i;
//获取图片
NSString *imgUrl = [WPLUtilgetWorkPlatformImgUrl:self.imageArray[i]];
UIImage *image = [UIImageimageWithData:[NSDatadataWithContentsOfURL:[NSURLURLWithString:imgUrl]]];
//修改图片尺寸
UIImage *newimage = [selfimageWithImageSimple:imagescaledToSize:CGSizeMake(imageH, imageH)];
[btn setImage:newimageforState:UIControlStateNormal];
//设置标题
[btn setTitle:self.titleArray[i]forState:UIControlStateNormal];
[btn setTitleColor:[UIColorblackColor] forState:UIControlStateNormal];
btn.titleLabel.font = [UIFontsystemFontOfSize:14];
[btn addTarget:selfaction:@selector(clickBtnAction:)forControlEvents:UIControlEventTouchUpInside];
[self.containerViewaddSubview:btn];
btn.contentHorizontalAlignment =UIControlContentHorizontalAlignmentLeft;
btn.contentVerticalAlignment =UIControlContentVerticalAlignmentTop;
//获取 titleLabel的size
CGSize titleLabelSize = [btn.titleLabel.textsizeWithAttributes:@{NSFontAttributeName : btn.titleLabel.font}];
//获取 imageView的size
[btn sizeToFit];
CGSize imageViewSize = btn.imageView.frame.size;
btn.frame =CGRectMake(labWidth *i, 16, labWidth, frame.size.height -16*2);
// button标题的偏移量
btn.titleEdgeInsets =UIEdgeInsetsMake(imageViewSize.height +16, (btn.frame.size.width - titleLabelSize.width) / 2.0 - imageViewSize.width,0, 0);
// button图片的偏移量
btn.imageEdgeInsets =UIEdgeInsetsMake(8, (btn.frame.size.width - imageViewSize.width) /2.0, 0, imageViewSize.width/2);
}
}
- (UIImage *)imageWithImageSimple:(UIImage *)image scaledToSize:(CGSize )newSize
{
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0 ,0 ,newSize.width, newSize.height)];
UIImage * newImage =UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext ();
return newImage;
}
- 循环创建btn+使用imageEdgeInsets约束+设置图片大小
- 给btn设置边框
- iOS---设置btn边框
- iOS 循环创建btn,选中一个,其他的都不选中
- SQL:创建使用约束
- 创建和使用约束
- 创建和使用约束
- UIButton 设置图片文字位置 -- imageEdgeInsets && titleEdgeInsets
- sql创建和使用约束
- UIButton的titleEdgeInsets和imageEdgeInsets使用技巧
- word 批量设置图片大小
- ewebeditor上传图片大小设置
- 【JavaScript】onload图片大小设置
- ImageVIew 设置图片大小
- Camera 设置图片大小
- ImageVIew 设置图片大小
- BitMap 设置图片大小
- ImageView设置图片大小
- TOMCAT原理以及处理HTTP请求的过程、ContextPath ServletPath
- VBS中Run和Exec的区别
- js基础-DOM-属性和CSS
- static final 基础(一)
- 签到界面总结
- 循环创建btn+使用imageEdgeInsets约束+设置图片大小
- 域环境提权、编辑注册表
- 56. Merge Intervals
- Java 设计模式之动态代理、静态代理
- Android Butter Knife使用
- 根分区和根目录
- LinkedBlockingQueue的put,add跟offer的区别
- 搭建Webmin服务器管理系统
- NativeXml:读取