1. 程式人生 > >iOS簡單實現虛線的小方法

iOS簡單實現虛線的小方法

做程式猿也有段時間了。
寫程式的時候,經常會用到各種線。
現在我就簡單說一下
用UIGraphicsBeginImageContext來實現一道虛線的繪製。

我這裡是將方法寫到UIImage的一個擴充套件類中,
首先 .h 檔案,宣告方法:

#import <UIKit/UIKit.h>
@interface UIImage (ZDExtension)
+(UIImage *)imageWithLineWithImageView:(UIImageView *)imageView;
@end

這裡的返回值是 UIImage。

.m 檔案,實現方法:

#import "UIImage+ZDExtension.h"
@implementation UIImage (ZDExtension) +(UIImage *)imageWithLineWithImageView:(UIImageView *)imageView{ CGFloat width = imageView.frame.size.width; CGFloat height = imageView.frame.size.height; UIGraphicsBeginImageContext(imageView.frame.size); [imageView.image drawInRect:CGRectMake(0
, 0, width, height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGFloat lengths[] = {10,5}; CGContextRef line = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(line, [UIColor colorWithRed:133/255.0 green:133/255.0 blue:133/255.0 alpha:1.0].CGColor); CGContextSetLineDash(line, 0
, lengths, 1); CGContextMoveToPoint(line, 0, 1); CGContextAddLineToPoint(line, width-10, 1); CGContextStrokePath(line); return UIGraphicsGetImageFromCurrentImageContext(); } @end

使用的時候就是

UIImageView * lineView1 = [[UIImageView alloc] initWithFrame:CGRectMake(15, 50, Screen_Width- 30, 1)];
    lineView1.image = [UIImage imageWithLineWithImageView:lineView1];

結果
虛線如圖

希望能幫上忙。