iOS簡單實現虛線的小方法
阿新 • • 發佈:2019-02-18
做程式猿也有段時間了。
寫程式的時候,經常會用到各種線。
現在我就簡單說一下
用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];
結果
希望能幫上忙。