IOS development UI-Quartz2D (stationery stripe)

Source: Internet
Author: User

 
1. A new project is created in the prefix program. The following lines of code can be implemented in the master controller file to easily tile images in the view. Copy code 1 # import "YYViewController. h "2 3 @ interface YYViewController () 4 5 @ end 6 7 @ implementation YYViewController 8 9-(void) viewDidLoad10 {11 [super viewDidLoad]; 12 13 UIImage * image = [UIImage imageNamed: @ "me"]; 14 UIColor * color = [UIColor colorWithPatternImage: image]; 15 self. view. backgroundColor = color; 16} 17 18 @ end 2. Use the above features to create a stationery effect. There is no split line on the default view. There are two ways to add a split line to the view: (1) Let the artist create an image dedicated to the background and set the image as the background. Disadvantage: the length of the message is uncertain, so it is difficult to determine the length of the background image. (2) Use a small image to create a color and tile the background. Step 1: generate a small image to be tiled later. Draw a rectangle. Draw lines. Step 2: remove the image from the context and set it as the background. Dark? (The Color of the controller is transparent in other places. If it is not set, the default value is black.) implementation code: Copy code 1 // 2 // YYViewController. m 3 // 01-Stationery stripe 4 // 5 // Created by Kong zhi ji on 14-6-11. 6 // Copyright (c) 2014 itcast. all rights reserved. 7 // 8 9 # import "YYViewController. h "10 11 @ interface YYViewController () 12 13 @ end14 15 @ implementation YYViewController16 17-(void) viewDidLoad18 {19 [super viewDidLoad]; 20 21 22 // 1. generate a small image to be tiled. 23 CGSize size = CGSizeMake (self. view. frame. size. width, 35); 24 uigraphicsbeginimagecontextwitexceptions (size, NO, 0); 25 26 // 2. draw the rectangle 27 CGContextRef ctx = UIGraphicsGetCurrentContext (); 28 CGFloat height = 35; 29 CGContextAddRect (ctx, CGRectMake (0, 0, self. view. frame. size. width, height); 30 [[UIColor whiteColor] set]; 31 CGContextFillPath (ctx); 32 33 // 3. draw lines 34 35 CGFloat lineWidth = 2; 36 CGFloat lineY = height-lineWidth; 37 CGFloat lineX = 0; 38 CGContextMoveToPoint (ctx, lineX, lineY); 39 CGContextAddLineToPoint (ctx, 320, lineY); 40 [[UIColor blackColor] set]; 41 CGContextStrokePath (ctx); 42 43 44 UIImage * image = equals (); 45 UIColor * color = [UIColor colorWithPatternImage: image]; 46 self. view. backgroundColor = color; 47} 48 49 @ end 3. Complete a simple e-book reader code in the Application Scenario: Copy code 1 // 2 // YYViewController. m 3 // 01-Stationery stripe 4 // 5 // Created by Kong zhi ji on 14-6-11. 6 // Copyright (c) 2014 itcast. all rights reserved. 7 // 8 9 # import "YYViewController. h "10 11 @ interface YYViewController () 12 13 @ property (weak, nonatomic) IBOutlet UITextView * textview; 14-(IBAction) perBtnClick :( UIButton *) sender; 15-(IBAction) nextBtnClick :( UIButton *) sender; 16 @ property (nonatomic, assign) int index; 17 @ end18 19 @ implementation YYViewController20 21-(void) viewDidLoad22 {23 [super viewDidLoad]; 24 25 26 // 1. generate a small image for tile 27 CGSize size = CGSizeMake (self. view. frame. size. width, 26); 28 uigraphicsbeginimagecontextwitexceptions (size, NO, 0); 29 30 // 2. draw the 31 CGContextRef ctx = UIGraphicsGetCurrentContext (); 32 CGFloat height = 26; 33 CGContextAddRect (ctx, CGRectMake (0, 0, self. view. frame. size. width, height); 34 [[UIColor brownColor] set]; 35 CGContextFillPath (ctx); 36 37 // 3. draw lines 38 39 CGFloat lineWidth = 2; 40 CGFloat lineY = height-lineWidth; 41 CGFloat lineX = 0; 42 CGContextMoveToPoint (ctx, lineX, lineY); 43 CGContextAddLineToPoint (ctx, 320, lineY); 44 [[UIColor blackColor] set]; 45 CGContextStrokePath (ctx); 46 47 48 UIImage * image = equals (); 49 UIColor * color = [UIColor colorWithPatternImage: image]; 50 // self. view. backgroundColor = color; 51 self. textview. backgroundColor = color; 52} 53 54-(IBAction) perBtnClick :( UIButton *) sender {55 self. index --; 56 self. textview. text = [NSString stringWithFormat: @ "Page % d", self. index]; 57 CATransition * ca = [[CATransition alloc] init]; 58 ca. type = @ "pageCurl"; 59 60 [self. textview. layer addAnimation: ca forKey: nil]; 61 62} 63 64-(IBAction) nextBtnClick :( UIButton *) sender {65 self. index ++; 66 self. textview. text = [NSString stringWithFormat: @ "Page % d", self. index]; 67 CATransition * ca = [[CATransition alloc] init]; 68 ca. type = @ "pageCurl"; 69 70 [self. textview. layer addAnimation: ca forKey: nil]; 71} 72 @ end

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.