簡易的雙折線圖實現

折線圖能用到的地方并不是太多,這兒測試了一個簡單的雙折線圖,要用到的可以看看。

動態效果圖


再看看iphone5和7的效果圖


如果是新手可以再看看我在里面用到的簡單適配

因為設置坐標地方不多,適配比較簡單,

#define H [UIScreen

mainScreen].bounds.size.height /667

#define W [UIScreen

mainScreen].bounds.size.width /375

分別在橫向坐標數字上乘以宏定義W,縱坐標上乘以宏定義H,如下

LineView* zx = [[LineViewalloc]initWithFrame:CGRectMake(0,300*W,[UIScreenmainScreen].bounds.size.width,350*H)];

就可以達到簡單的適配,是不是很簡單~

接下來進入正題

首先先建一個UIview類,然后在ViewController里導入UIview

的頭文件,初始化view.add到self.view,

ViewController的.m如下

//? Copyright ? 2016年RanFeiHong. All rights reserved.折線圖能用到的地方并不是太多,這兒測試了一個簡單的雙折線圖,要用到的可以看看。

首先先建一個UIview類,然后在ViewController里導入UIview

的頭文件,初始化view.add到self.view,

ViewController的.m如下

//? Copyright ? 2016年RanFeiHong. All rights reserved.

//

#import"ViewController.h"

#import"LineView.h"

#define H [UIScreen

mainScreen].bounds.size.height /667

#define W [UIScreen

mainScreen].bounds.size.width /375

@interfaceViewController ()

@end

@implementationViewController

- (void)viewDidLoad{

[superviewDidLoad];

[superviewDidLoad];

self.view.backgroundColor

= [UIColorwhiteColor];

LineView* zx = [[LineViewalloc]initWithFrame:CGRectMake(0,300*W, [UIScreenmainScreen].bounds.size.width,350*H)];

//橫縱坐標賦值

zx.horizontalDateArray=@[@"1d",@"2d",@"3d",@"4d",@"5d",@"6d",@"7d",@"8d",@"9d"];

zx.verticalDateArray=@[@"400",@"300",@"200",@"100",@"0"];

//背景顏色

zx.gradientLayerColors= [NSMutableArrayarrayWithArray:@[(__bridgeid)[UIColorcolorWithRed:23/255.0green:155/255.0blue:255/255.0alpha:1.0].CGColor, (__bridgeid)[UIColorcolorWithRed:10/255.0green:240/55.0blue:244/255.0alpha:1.0].CGColor]];

//設置折線顏色

zx.lineColorArray=@[ [UIColorcolorWithRed:28 /255.0green:70 /255.0blue:140 /255.0alpha:1.0],[UIColorcolorWithRed:133 /255.0green:1 /255.0blue:113 /255.0alpha:1.0]];

//設置折線的數據源

zx.dataArray=@[@[@(183),@(235),@(160),@(208),@(116),@(163),@(206),@(168),@(234)],

@[@(236),@(160),@(218),@(166),@(256),@(172),@(271),@(188),@(216)]];

//設置line名稱

zx.lineNameArray =@[@"吸收",@"消耗"];

[self.viewaddSubview:zx];

}

@end

在新建的UIview類的.h里是各個屬性控件和數據數組如下

//? Copyright ?

2016年RanFeiHong. All rights reserved.

//

#import

@interfaceLineView :UIView

@property

(nonatomic,strong)NSArray* dataArray;

@property(nonatomic,strong)NSArray* horizontalDateArray;

@property(nonatomic,strong)NSArray* verticalDateArray;

@property(nonatomic,strong)NSMutableArray*gradientLayerColors;

@property

(nonatomic,strong)UIColor* LineColor;

@property

(nonatomic,strong)NSArray* lineColorArray;

@property

(nonatomic,strong)NSArray* lineNameArray;

@property

(nonatomic,strong)UIBezierPath* path1;

@property(nonatomic,strong)UIView*gradientBackgroundView;

@property

(nonatomic,strong)CAGradientLayer*gradientLayer;

@property(nonatomic,strong)NSMutableArray* lineChartLayerArray;

- (instancetype)initWithFrame:(CGRect)frame;

- (void)dravLine;

- (void)line;

@end

然后在.m里建立X軸數據,寫一個方法在里面畫折線圖,創建折線點和加上標記label。

.m如下

//? Copyright ?

2016年RanFeiHong. All rights reserved.

//

#import"LineView.h"

@implementationLineView

- (instancetype)initWithFrame:(CGRect)frame{

if(self= [superinitWithFrame:frame]){

self.backgroundColor= [UIColorwhiteColor];

self.lineChartLayerArray = [NSMutableArrayarray];

}

returnself;

}

- (void)setHorizontalDateArray:(NSArray*)horizontalDateArray{

_horizontalDateArray= horizontalDateArray;

[selfcreateLabelX];

}

- (void)setVerticalDateArray:(NSArray*)verticalDateArray{

_verticalDateArray= verticalDateArray;

}

- (void)setGradientLayerColors:(NSMutableArray*)gradientLayerColors{

_gradientLayerColors= gradientLayerColors;

[selfdrawGradientBackgroundView];

}

#pragma mark創建下標的顏色標記

- (void)setLineColorArray:(NSArray*)lineColorArray{

_lineColorArray= lineColorArray;

for(NSIntegeri =0; i < lineColorArray.count; i++) {

UIButton* btn = [UIButtonbuttonWithType:UIButtonTypeCustom];

btn.frame=CGRectMake((20+80*i),self.frame.size.height-13,15,15);

btn.backgroundColor= lineColorArray[i];

btn.tag=666+i;

[btn addTarget:selfaction:@selector(btnClict:)forControlEvents:UIControlEventTouchUpInside];

[selfaddSubview:btn];

}

}

- (void)setLineNameArray:(NSArray*)lineNameArray{

_lineNameArray= lineNameArray;

for(NSIntegeri =0; i < lineNameArray.count; i++) {

UIButton* btn = (UIButton*)[selfviewWithTag:666+ i];

UILabel* nameLabel = [[UILabelalloc]initWithFrame:CGRectMake(CGRectGetMaxX(btn.frame)+3,self.frame.size.height-15,2.0*30,18)];

nameLabel.text=self.lineNameArray[i];

nameLabel.font= [UIFontsystemFontOfSize:13.0];

[selfaddSubview:nameLabel];

}

}

- (void)btnClict:(UIButton*)btn{

for(NSIntegerlineNumber =0; lineNumber

for(NSIntegeri =0; i

UILabel* label = (UILabel*)[selfviewWithTag:3000*(lineNumber+1) + i];

if(lineNumber == btn.tag-666) {

label.hidden= !label.hidden;

}

}

CAShapeLayer*lineChartLayer =self.lineChartLayerArray[lineNumber];

if(lineNumber == btn.tag-666) {

lineChartLayer.hidden=!lineChartLayer.hidden;

}

}

}

- (void)drawRect:(CGRect)rect{

[selfline];

}

#pragma mark創建x軸的數據

- (void)createLabelX{

CGFloatmonth =self.horizontalDateArray.count;

for(NSIntegeri =0; i

CGFloatwidthlable = (self.frame.size.width-30)/month-5;

CGFloatheightlable = widthlable/2;

UILabel* LabelMonth = [[UILabelalloc]initWithFrame:CGRectMake((self.frame.size.width-30)/month* i +15,self.frame.size.height-60+heightlable*0.5, widthlable *0.6, heightlable)];

LabelMonth.tag=1000+ i;

LabelMonth.text=self.horizontalDateArray[i];

LabelMonth.font= [UIFontsystemFontOfSize:10];

[selfaddSubview:LabelMonth];

}

}

- (void)drawGradientBackgroundView{

self.gradientBackgroundView= [[UIViewalloc]initWithFrame:CGRectMake(15,0,self.bounds.size.width-30,self.bounds.size.height-60)];

[selfaddSubview:self.gradientBackgroundView];

self.gradientLayer= [CAGradientLayerlayer];

self.gradientLayer.colors=self.gradientLayerColors;

[self.gradientBackgroundView.layeraddSublayer:self.gradientLayer];

}

- (void)line

{

[selfdravLine];

for(NSIntegeri =0; i

CAShapeLayer*lineChartLayer =self.lineChartLayerArray[i];

lineChartLayer.lineWidth=1;

CABasicAnimation *pathAnimation = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];

pathAnimation.duration=2;

pathAnimation.repeatCount=1;

pathAnimation.removedOnCompletion=YES;

pathAnimation.fromValue= [NSNumbernumberWithFloat:0.0f];

pathAnimation.toValue= [NSNumbernumberWithFloat:1.0f];

[lineChartLayeraddAnimation:pathAnimationforKey:@"strokeEnd"];

}

}

#pragma mark畫折線圖

- (void)dravLine{

CGFloatMaxY ;

CGFloatfirstdate = [[NSStringstringWithFormat:@"%@",self.verticalDateArray[0]]floatValue];

CGFloatlastdate = [[NSStringstringWithFormat:@"%@",[self.verticalDateArraylastObject]]floatValue];

MaxY = firstdate -lastdate;

for(NSIntegerLineNumber =0; LineNumber <2; LineNumber++){

UILabel* label = (UILabel*)[selfviewWithTag:1000];

UIBezierPath* path = [[UIBezierPathalloc]init];

path.lineWidth=1.0;

UIColor* color = [UIColorgreenColor];

[colorset];

NSArray*array =self.dataArray[LineNumber];

CGFloatarc1 = [[NSStringstringWithFormat:@"%@",array[0]]floatValue];

[pathmoveToPoint:CGPointMake(label.frame.origin.x-15, (MaxY-arc1 + lastdate) /MaxY * (self.frame.size.height-60)? )];

//創建折現點標記

for(NSIntegeri =1; i

UILabel* label1 = (UILabel*)[selfviewWithTag:1000+ i];

NSArray*array =self.dataArray[LineNumber];

CGFloatarc =[[NSStringstringWithFormat:@"%@",array[i]]floatValue];

[pathaddLineToPoint:CGPointMake(label1.frame.origin.x-30,? (MaxY -arc + lastdate) /MaxY * (self.frame.size.height-60) )];

UILabel* falglabel = [[UILabelalloc]initWithFrame:CGRectMake(label1.frame.origin.x-15, (MaxY-arc +lastdate) /MaxY * (self.frame.size.height-60)? ,40,20)];

falglabel.tag=3000* (LineNumber )+ i;

falglabel.text= [NSStringstringWithFormat:@"%.1f",arc];

falglabel.font= [UIFontsystemFontOfSize:11.0];

falglabel.textColor=self.lineColorArray[LineNumber];

[selfaddSubview:falglabel];

}

CAShapeLayer*lineChartLayer = [CAShapeLayerlayer];

lineChartLayer.path= path.CGPath;

UIColor* linecolors = (UIColor*)self.lineColorArray[LineNumber];

lineChartLayer.strokeColor= linecolors.CGColor;

lineChartLayer.fillColor= [[UIColorclearColor]CGColor];

lineChartLayer.lineWidth=5;

lineChartLayer.lineCap=kCALineCapRound;

lineChartLayer.lineJoin=kCALineJoinRound;

[self.lineChartLayerArrayaddObject:lineChartLayer];

[self.gradientBackgroundView.layeraddSublayer:lineChartLayer];

}

}

@end

下面是iphone5和7的效果圖

如果是新手可以再看看我在里面用到的簡單適配

因為設置坐標地方不多,適配比較簡單,

#define H [UIScreen

mainScreen].bounds.size.height /667

#define W [UIScreen

mainScreen].bounds.size.width /375

分別在橫向坐標數字上乘以宏定義W,縱坐標上乘以宏定義H,如下

LineView* zx = [[LineViewalloc]initWithFrame:CGRectMake(0,300*W,[UIScreenmainScreen].bounds.size.width,350*H)];

就可以達到簡單的適配,是不是很簡單~

//

#import"ViewController.h"

#import"LineView.h"

#define H [UIScreen

mainScreen].bounds.size.height /667

#define W [UIScreen

mainScreen].bounds.size.width /375

@interfaceViewController ()

@end

@implementationViewController

- (void)viewDidLoad{

[superviewDidLoad];

[superviewDidLoad];

self.view.backgroundColor

= [UIColorwhiteColor];

LineView* zx = [[LineViewalloc]initWithFrame:CGRectMake(0,300*W, [UIScreenmainScreen].bounds.size.width,350*H)];

//橫縱坐標賦值

zx.horizontalDateArray=@[@"1d",@"2d",@"3d",@"4d",@"5d",@"6d",@"7d",@"8d",@"9d"];

zx.verticalDateArray=@[@"400",@"300",@"200",@"100",@"0"];

//背景顏色

zx.gradientLayerColors= [NSMutableArrayarrayWithArray:@[(__bridgeid)[UIColorcolorWithRed:23/255.0green:155/255.0blue:255/255.0alpha:1.0].CGColor, (__bridgeid)[UIColorcolorWithRed:10/255.0green:240/55.0blue:244/255.0alpha:1.0].CGColor]];

//設置折線顏色

zx.lineColorArray=@[ [UIColorcolorWithRed:28 /255.0green:70 /255.0blue:140 /255.0alpha:1.0],[UIColorcolorWithRed:133 /255.0green:1 /255.0blue:113 /255.0alpha:1.0]];

//設置折線的數據源

zx.dataArray=@[@[@(183),@(235),@(160),@(208),@(116),@(163),@(206),@(168),@(234)],

@[@(236),@(160),@(218),@(166),@(256),@(172),@(271),@(188),@(216)]];

//設置line名稱

zx.lineNameArray =@[@"吸收",@"消耗"];

[self.viewaddSubview:zx];

}

@end

在新建的UIview類的.h里是各個屬性控件和數據數組如下

//? Copyright ?

2016年RanFeiHong. All rights reserved.

//

#import

@interfaceLineView :UIView

@property

(nonatomic,strong)NSArray* dataArray;

@property(nonatomic,strong)NSArray* horizontalDateArray;

@property(nonatomic,strong)NSArray* verticalDateArray;

@property(nonatomic,strong)NSMutableArray*gradientLayerColors;

@property

(nonatomic,strong)UIColor* LineColor;

@property

(nonatomic,strong)NSArray* lineColorArray;

@property

(nonatomic,strong)NSArray* lineNameArray;

@property

(nonatomic,strong)UIBezierPath* path1;

@property(nonatomic,strong)UIView*gradientBackgroundView;

@property

(nonatomic,strong)CAGradientLayer*gradientLayer;

@property(nonatomic,strong)NSMutableArray* lineChartLayerArray;

- (instancetype)initWithFrame:(CGRect)frame;

- (void)dravLine;

- (void)line;

@end

然后在.m里建立X軸數據,寫一個方法在里面畫折線圖,創建折線點和加上標記label。

.m如下

//? Copyright ?

2016年RanFeiHong. All rights reserved.

//

#import"LineView.h"

@implementationLineView

- (instancetype)initWithFrame:(CGRect)frame{

if(self= [superinitWithFrame:frame]){

self.backgroundColor= [UIColorwhiteColor];

self.lineChartLayerArray = [NSMutableArrayarray];

}

returnself;

}

- (void)setHorizontalDateArray:(NSArray*)horizontalDateArray{

_horizontalDateArray= horizontalDateArray;

[selfcreateLabelX];

}

- (void)setVerticalDateArray:(NSArray*)verticalDateArray{

_verticalDateArray= verticalDateArray;

}

- (void)setGradientLayerColors:(NSMutableArray*)gradientLayerColors{

_gradientLayerColors= gradientLayerColors;

[selfdrawGradientBackgroundView];

}

#pragma mark創建下標的顏色標記

- (void)setLineColorArray:(NSArray*)lineColorArray{

_lineColorArray= lineColorArray;

for(NSIntegeri =0; i < lineColorArray.count; i++) {

UIButton* btn = [UIButtonbuttonWithType:UIButtonTypeCustom];

btn.frame=CGRectMake((20+80*i),self.frame.size.height-13,15,15);

btn.backgroundColor= lineColorArray[i];

btn.tag=666+i;

[btn addTarget:selfaction:@selector(btnClict:)forControlEvents:UIControlEventTouchUpInside];

[selfaddSubview:btn];

}

}

- (void)setLineNameArray:(NSArray*)lineNameArray{

_lineNameArray= lineNameArray;

for(NSIntegeri =0; i < lineNameArray.count; i++) {

UIButton* btn = (UIButton*)[selfviewWithTag:666+ i];

UILabel* nameLabel = [[UILabelalloc]initWithFrame:CGRectMake(CGRectGetMaxX(btn.frame)+3,self.frame.size.height-15,2.0*30,18)];

nameLabel.text=self.lineNameArray[i];

nameLabel.font= [UIFontsystemFontOfSize:13.0];

[selfaddSubview:nameLabel];

}

}

- (void)btnClict:(UIButton*)btn{

for(NSIntegerlineNumber =0; lineNumber

for(NSIntegeri =0; i

UILabel* label = (UILabel*)[selfviewWithTag:3000*(lineNumber+1) + i];

if(lineNumber == btn.tag-666) {

label.hidden= !label.hidden;

}

}

CAShapeLayer*lineChartLayer =self.lineChartLayerArray[lineNumber];

if(lineNumber == btn.tag-666) {

lineChartLayer.hidden=!lineChartLayer.hidden;

}

}

}

- (void)drawRect:(CGRect)rect{

[selfline];

}

#pragma mark創建x軸的數據

- (void)createLabelX{

CGFloatmonth =self.horizontalDateArray.count;

for(NSIntegeri =0; i

CGFloatwidthlable = (self.frame.size.width-30)/month-5;

CGFloatheightlable = widthlable/2;

UILabel* LabelMonth = [[UILabelalloc]initWithFrame:CGRectMake((self.frame.size.width-30)/month* i +15,self.frame.size.height-60+heightlable*0.5, widthlable *0.6, heightlable)];

LabelMonth.tag=1000+ i;

LabelMonth.text=self.horizontalDateArray[i];

LabelMonth.font= [UIFontsystemFontOfSize:10];

[selfaddSubview:LabelMonth];

}

}

- (void)drawGradientBackgroundView{

self.gradientBackgroundView= [[UIViewalloc]initWithFrame:CGRectMake(15,0,self.bounds.size.width-30,self.bounds.size.height-60)];

[selfaddSubview:self.gradientBackgroundView];

self.gradientLayer= [CAGradientLayerlayer];

self.gradientLayer.colors=self.gradientLayerColors;

[self.gradientBackgroundView.layeraddSublayer:self.gradientLayer];

}

- (void)line

{

[selfdravLine];

for(NSIntegeri =0; i

CAShapeLayer*lineChartLayer =self.lineChartLayerArray[i];

lineChartLayer.lineWidth=1;

CABasicAnimation *pathAnimation = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];

pathAnimation.duration=2;

pathAnimation.repeatCount=1;

pathAnimation.removedOnCompletion=YES;

pathAnimation.fromValue= [NSNumbernumberWithFloat:0.0f];

pathAnimation.toValue= [NSNumbernumberWithFloat:1.0f];

[lineChartLayeraddAnimation:pathAnimationforKey:@"strokeEnd"];

}

}

#pragma mark畫折線圖

- (void)dravLine{

CGFloatMaxY ;

CGFloatfirstdate = [[NSStringstringWithFormat:@"%@",self.verticalDateArray[0]]floatValue];

CGFloatlastdate = [[NSStringstringWithFormat:@"%@",[self.verticalDateArraylastObject]]floatValue];

MaxY = firstdate -lastdate;

for(NSIntegerLineNumber =0; LineNumber <2; LineNumber++){

UILabel* label = (UILabel*)[selfviewWithTag:1000];

UIBezierPath* path = [[UIBezierPathalloc]init];

path.lineWidth=1.0;

UIColor* color = [UIColorgreenColor];

[colorset];

NSArray*array =self.dataArray[LineNumber];

CGFloatarc1 = [[NSStringstringWithFormat:@"%@",array[0]]floatValue];

[pathmoveToPoint:CGPointMake(label.frame.origin.x-15, (MaxY-arc1 + lastdate) /MaxY * (self.frame.size.height-60)? )];

//創建折現點標記

for(NSIntegeri =1; i

UILabel* label1 = (UILabel*)[selfviewWithTag:1000+ i];

NSArray*array =self.dataArray[LineNumber];

CGFloatarc =[[NSStringstringWithFormat:@"%@",array[i]]floatValue];

[pathaddLineToPoint:CGPointMake(label1.frame.origin.x-30,? (MaxY -arc + lastdate) /MaxY * (self.frame.size.height-60) )];

UILabel* falglabel = [[UILabelalloc]initWithFrame:CGRectMake(label1.frame.origin.x-15, (MaxY-arc +lastdate) /MaxY * (self.frame.size.height-60)? ,40,20)];

falglabel.tag=3000* (LineNumber )+ i;

falglabel.text= [NSStringstringWithFormat:@"%.1f",arc];

falglabel.font= [UIFontsystemFontOfSize:11.0];

falglabel.textColor=self.lineColorArray[LineNumber];

[selfaddSubview:falglabel];

}

CAShapeLayer*lineChartLayer = [CAShapeLayerlayer];

lineChartLayer.path= path.CGPath;

UIColor* linecolors = (UIColor*)self.lineColorArray[LineNumber];

lineChartLayer.strokeColor= linecolors.CGColor;

lineChartLayer.fillColor= [[UIColorclearColor]CGColor];

lineChartLayer.lineWidth=5;

lineChartLayer.lineCap=kCALineCapRound;

lineChartLayer.lineJoin=kCALineJoinRound;

[self.lineChartLayerArrayaddObject:lineChartLayer];

[self.gradientBackgroundView.layeraddSublayer:lineChartLayer];

}

}

@end

失誤之處請大家多多指正。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容