背景平铺

ViewController.m

//

//  ViewController.m

//  6A04.北京平铺

//

//  Created by huan on 16/1/30.

//  Copyright © 2016年 huanxi. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//添加控制器的背景

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"textBg.jpg"]];

//0.从bundle的new文件获取文字

//0.1 获取文件路径

NSString *path = [[NSBundle mainBundle] pathForResource:@"news" ofType:nil];

//0.2 读取里面的文字

NSString *news = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

//1.把文字显示上去 UITextView 显示多行数据,并且可编辑

UITextView *textView = [[UITextView alloc] initWithFrame:self.view.bounds];

//设置文本

textView.text = news;

//设置TextView的背景

#warning 图片有缓存,clear ,iOS8中图片不放在Suporting File下,iOS9没有影响

textView.backgroundColor = [UIColor clearColor];

//设置文字的大小

//    textView.font = [UIFont systemFontOfSize:20];

//也可以这样获得字体

textView.font = [UIFont fontWithName:@"Verdana" size:20];

// 当前系统可用的字体

NSLog(@"%@", [UIFont familyNames]);

textView.alpha = 0.5;

[self.view addSubview:textView];

//2.设置文字背景

//2.1 画一个虚线的背景图片

UIImage *dashBgImage = [self dashBgImage];

//2.2 画一个虚线的背景图片平铺(第一种)

//    textView.backgroundColor = [UIColor colorWithPatternImage:dashBgImage];

//2.2 创建一个ImageView,添加TextView的第一位置

UIImageView *bgImageView = [[UIImageView alloc] init];

// 背景设置大小的时候,是根据 文字的字数和字体的大小决定

//文字需要的尺寸

CGFloat screenW = [UIScreen mainScreen].bounds.size.width;

CGSize textNeedSize = [news boundingRectWithSize:CGSizeMake(screenW, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:textView.font} context:nil].size;

bgImageView.frame = CGRectMake(0, 0, textNeedSize.width, textNeedSize.height);

bgImageView.backgroundColor = [UIColor colorWithPatternImage:dashBgImage];

[textView insertSubview:bgImageView atIndex:0];

}

#pragma mark 带虚线的背景图片

-(UIImage *)dashBgImage{

//使用位图上下文

CGFloat bgW = [UIScreen mainScreen].bounds.size.width;

CGFloat bgH = 22;

UIGraphicsBeginImageContextWithOptions(CGSizeMake(bgW, bgH), NO, 0.0);

CGContextRef bitmapContext = UIGraphicsGetCurrentContext();

//画虚线

//计算线的位置

CGFloat lineH = 1;

CGFloat lineY = bgH - lineH;

//设置虚线每段的距离长度

[[UIColor redColor]set];

CGFloat lengths[2] = {10, 5};

CGContextSetLineDash(bitmapContext, 0, lengths, 2);

CGPoint points[2] = {{0, lineY}, {bgW, lineY}};

CGContextAddLines(bitmapContext, points, 2);

CGContextStrokePath(bitmapContext);

//获取背景图片

UIImage *bgImage = UIGraphicsGetImageFromCurrentImageContext();

//结束编辑

UIGraphicsEndImageContext();

return bgImage;

}

@end

时间: 2024-12-14 20:15:41

背景平铺的相关文章

Android中实现背景平铺

建立以drawable xml <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/icon_comment_all" android:tileMode="mirror" /> 然

iOS UIImage 图片水印,图片裁剪,屏幕截图,背景平铺

图片水印功能 1 #import "UIImage+ZR.h" 2 3 @implementation UIImage (ZR) 4 + (instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo 5 { 6 UIImage *bgImage = [UIImage imageNamed:bg]; 7 8 // 1.创建一个基于位图的上下文(开启一个基于位图的上下文) 9 UIGraphicsBeginImage

CSS3 background-size图片自适应

2 2013-04-21 23:07:53 [小 大] 来源: 本站资讯均由编辑从其他媒体精选HTML5相关资讯转载,以供网友参阅 background- size属性和background-origin属性.background-clip属性一 样,也是CSS3对于background新增加的属性.它的作用是指定背景图片的大小,比如:对于一个div块,我们需要为它添加一张图片作为背景,然 而图片大小并非总能尽如人意,但我们又不想使用background-repeat属性让背景平铺,那么这时我们

背景图片的设置

之前就知道了用一张图片来设置页面内的所有背景的技术.原理很简单, 利用background-potision精确地定位到图片的位置.好处是减少页面的http请求数. 老实说,我并不觉得这个技术有多值得推广.虽然是减少了http请求数,但对于99%的网站来说 ,这个改进基本是看不见的.除了超一流的大网站,流量巨大,减少http请求数可以看到效果, 绝大多数的网站根本不需要这个技术.相较于它带来的几乎看不见的好处,它带来的坏处却很多. 首先,要把所有小图片集中到一张大图片上,这多了一个步骤,而图片之

ie6的png24问题

解决IE6的PNG透明JS插件 DD_belatedPNG 引:http://www.cnblogs.com/cobby/archive/2012/05/11/2495801.html IE6的PNG透明是个老问题了,最近有朋友问我有没有最好的解决这个问题的插件.虽然知道且在用DD_belatedPNG这个插件,今天抽空把这个发上来.虽然之前在博客里发过一款jquery的png插件,但是不支持背景平铺.DD_belatedPNG使用了微软的VML语言对PNG图片进行重新绘制,以达到半透明的效果,

css02

1.框模型:盒模型,①对象实际宽度=左右外边距+左右边框+左右内边距 + width:②对象实际高度=上下外边距+上下边框+上下内边距 + height: 2.外边距:margin:取值:①top(上) right(右) bottom(下) left(左):②value:一个值,四个方向相同:③top/bottom(上/下) left/right(左/右):上下一致,左右一致:④auto:左右水平居中,上下无效(前提必须设置宽度): 3.外边距合并:两个垂直外边距相遇,形成一个外边距,以值大者为

妙味课堂——HTML+CSS基础笔记

妙味课堂的课程讲得非常的清楚,受益匪浅.先把HTML和CSS基础课程部分视频的学习笔记记录如下: padding #PS基础 ##前端需要的PS技能 - PS技能(前端需要):切图.修图.测量 - PS工具: - 移动工具 - 矩形选框工具 - 裁切工具 - 吸管工具 - 横排文字工具 - 手抓(快捷键:空格) - 缩放(快捷键:Ctrl + 和 Ctrl -) - 标尺(快捷键:Ctrl R,主要是拖出参考线.矩形区域选择的时候,按住Ctrl,就能贴合参考线) - 自由变换(快捷键 Ctrl

IE6部分兼容问题

border-style:dotted 点线 IE6不兼容 (除了solid以外,其它都有兼容问题,不完全一样) a IE6 不支持a以外的所有标签伪类,IE6以上版本支持所有标签的hover伪类. inline-block IE6 7不支持块元素标签的inline-block 空标签清浮动 IE6 最小高度 19px:就是font-size=0后,IE6下还有2px偏差.通过设置overflow:hidden来隐藏设置高度以外的高度. after伪类 IE 6 7不支持after伪类清除浮动,

HTML+CSS基础之兼容性问题

1.在IE6/7下元素要通过浮动在同一行,就给这行元素都加浮动. 2.最小高度问题:在IE6下,元素的高度小于19px时,会被当做19px处理,解决方案:overflow:hidden: 3.1px dotted在IE6下不支持,解决方案:切背景平铺. 4.IE6/7下,inline-block不支持块标签:暂无解决办法 5.IE6下的双边距bug:在ie6下,块元素.浮动.横向margin值,横向margin值会放大成两倍:解决方案:display:inline,注意:如margin-righ