富文本

與NSString類似,在iOS中AttributedString也分為NSAttributedString和

NSMutableAttributedString,不同的是,AttributedString對象多了一個Attribute的概念,一個

AttributedString的對象包含很多的屬性,每一個屬性都有其對應的字符區域,在這里是使用NSRange來進行描述的。

使用AttributedString的方式通常有兩種:

方式一:

首先初始化一個NSMutableAttributedString,然后向里面添加文字樣式,最后將它賦給控件的AttributedText,該方法適合于文本較少而又需要分段精細控制的情況。

NSString *originStr = @"Hello,中秋節!";

//方式一

//創建 NSMutableAttributedString

NSMutableAttributedString *attributedStr01 = [[NSMutableAttributedString alloc] initWithString: originStr];

//添加屬性

//給所有字符設置字體為Zapfino,字體高度為15像素

[attributedStr01 addAttribute: NSFontAttributeName value: [UIFont fontWithName: @"Zapfino" size: 15]

range: NSMakeRange(0, originStr.length)];

//分段控制,最開始4個字符顏色設置成藍色

[attributedStr01 addAttribute: NSForegroundColorAttributeName value: [UIColor blueColor] range: NSMakeRange(0, 4)];

//分段控制,第5個字符開始的3個字符,即第5、6、7字符設置為紅色

[attributedStr01 addAttribute: NSForegroundColorAttributeName value: [UIColor redColor] range: NSMakeRange(4, 3)];

//賦值給顯示控件label01的 attributedText

_label01.attributedText = attributedStr01;

方式二:

首先創建屬性字典,初始化各種屬性,然后和需要控制的文本一起創建并賦值給控件的AttributedText,該方法適合于需要控制的文本較多整體控制的情況,通常是從文件中讀取的大段文本控制。

//方式二

//創建屬性字典

NSDictionary *attrDict = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],

NSForegroundColorAttributeName: [UIColor blueColor] };

//創建 NSAttributedString 并賦值

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict];

通過對比兩個例子可以看出,方式一比較容易處理復雜的格式,但是屬性設置比較繁多復雜,而方式二的屬性設置比較簡單明了,卻不善于處理復雜多樣的格式控制,但是不善于并不等于不能,可以通過屬性字符串分段的方式來達到方式一的效果,如下:

//方式二的分段處理

//第一段

NSDictionary *attrDict1 = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],

NSForegroundColorAttributeName: [UIColor blueColor] };

NSAttributedString *attrStr1 = [[NSAttributedString alloc]

initWithString: [originStr substringWithRange: NSMakeRange(0, 4)]

attributes: attrDict1];

//第二段

NSDictionary *attrDict2 = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],

NSForegroundColorAttributeName: [UIColor redColor] };

NSAttributedString *attrStr2 = [[NSAttributedString alloc]

initWithString: [originStr substringWithRange: NSMakeRange(4, 3)]

attributes: attrDict2];

//第三段

NSDictionary *attrDict3 = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],

NSForegroundColorAttributeName: [UIColor blackColor] };

NSAttributedString *attrStr3 = [[NSAttributedString alloc] initWithString: [originStr substringWithRange:

NSMakeRange(7, originStr.length - 4 - 3)] attributes:

attrDict3];

//合并

NSMutableAttributedString *attributedStr03 = [[NSMutableAttributedString alloc] initWithAttributedString: attrStr1];

[attributedStr03 appendAttributedString: attrStr2];

[attributedStr03 appendAttributedString: attrStr3];

_label03.attributedText = attributedStr03;

好了,講完AttributedString的創建方式,下面研究下AttributedString究竟可以設置哪些屬性,具體來說,有以下21個:

// NSFontAttributeName ? ? ? ? ? ? ? ?設置字體屬性,默認值:字體:Helvetica(Neue) 字號:12

// NSForegroundColorAttributeNam ? ? ?設置字體顏色,取值為 UIColor對象,默認值為黑色

// NSBackgroundColorAttributeName ? ? 設置字體所在區域背景顏色,取值為 UIColor對象,默認值為nil, 透明色

// NSLigatureAttributeName ? ? ? ? ? ?設置連體屬性,取值為NSNumber 對象(整數),0 表示沒有連體字符,1 表示使用默認的連體字符

// NSKernAttributeName ? ? ? ? ? ? ? ?設定字符間距,取值為 NSNumber 對象(整數),正值間距加寬,負值間距變窄

// NSStrikethroughStyleAttributeName ?設置刪除線,取值為 NSNumber 對象(整數)

// NSStrikethroughColorAttributeName ?設置刪除線顏色,取值為 UIColor 對象,默認值為黑色

// NSUnderlineStyleAttributeName ? ? ?設置下劃線,取值為 NSNumber 對象(整數),枚舉常量 NSUnderlineStyle中的值,與刪除線類似

// NSUnderlineColorAttributeName ? ? ?設置下劃線顏色,取值為 UIColor 對象,默認值為黑色

// NSStrokeWidthAttributeName ? ? ? ? 設置筆畫寬度,取值為 NSNumber 對象(整數),負值填充效果,正值中空效果

// NSStrokeColorAttributeName ? ? ? ? 填充部分顏色,不是字體顏色,取值為 UIColor 對象

// NSShadowAttributeName ? ? ? ? ? ? ?設置陰影屬性,取值為 NSShadow 對象

// NSTextEffectAttributeName ? ? ? ? ?設置文本特殊效果,取值為 NSString 對象,目前只有圖版印刷效果可用:

// NSBaselineOffsetAttributeName ? ? ?設置基線偏移值,取值為 NSNumber (float),正值上偏,負值下偏

// NSObliquenessAttributeName ? ? ? ? 設置字形傾斜度,取值為 NSNumber (float),正值右傾,負值左傾

// NSExpansionAttributeName ? ? ? ? ? 設置文本橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文本,負值橫向壓縮文本

// NSWritingDirectionAttributeName ? ?設置文字書寫方向,從左向右書寫或者從右向左書寫

// NSVerticalGlyphFormAttributeName ? 設置文字排版方向,取值為 NSNumber 對象(整數),0 表示橫排文本,1 表示豎排文本

// NSLinkAttributeName ? ? ? ? ? ? ? ?設置鏈接屬性,點擊后調用瀏覽器打開指定URL地址

// NSAttachmentAttributeName ? ? ? ? ?設置文本附件,取值為NSTextAttachment對象,常用于文字圖片混排

// NSParagraphStyleAttributeName ? ? ?設置文本段落排版格式,取值為 NSParagraphStyle 對象

下面就一一舉例說明:

1. NSFontAttributeName

//NSForegroundColorAttributeName 設置字體顏色,取值為 UIColor,默認為黑色

NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };

NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

注意:

NSForegroundColorAttributeName設置的顏色與UILabel的textColor屬性設置的顏色在地位上是相等的,誰最后賦值,最終顯示的就是誰的顏色。

2. NSBackgroundColorAttributeName

//NSForegroundColorAttributeName 設置字體顏色,取值為 UIColor,默認為黑色

NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };

NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

//NSBackgroundColorAttributeName 設置字體所在區域背景的顏色,取值為UIColor,默認值為nil

NSDictionary *attrDict4 = @{ NSBackgroundColorAttributeName: [UIColor orangeColor] };

NSDictionary *attrDict5 = @{ NSBackgroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict6 = @{ NSBackgroundColorAttributeName: [UIColor cyanColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];

仔細觀察會發現個問題,我并沒有關閉 NSForegroundColorAttributeName

屬性,但是在運行結果中,所有字體的顏色都變成了默認色——黑色,這說明 NSForegroundColorAttributeName 和

NSBackgroundColorAttributeName 的低位是相等的,跟前面介紹的 textColor

一樣,哪個屬性最后一次賦值,就會沖掉前面的效果,若是我們把屬性代碼順序交換一下

//NSBackgroundColorAttributeName 設置字體所在區域背景的顏色,取值為UIColor,默認值為nil

NSDictionary *attrDict4 = @{ NSBackgroundColorAttributeName: [UIColor orangeColor] };

NSDictionary *attrDict5 = @{ NSBackgroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict6 = @{ NSBackgroundColorAttributeName: [UIColor cyanColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];

//NSForegroundColorAttributeName 設置字體顏色,取值為 UIColor,默認為黑色

NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };

NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

但是textColor屬性可以與 NSBackgroundColorAttributeName 屬性疊加

_label01.textColor = [UIColor greenColor];

_label02.textColor = [UIColor yellowColor];

_label03.textColor = [UIColor blueColor];

//NSForegroundColorAttributeName 設置字體顏色,取值為 UIColor,默認為黑色

NSDictionary *attrDict1 = @{ NSForegroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict2 = @{ NSForegroundColorAttributeName: [UIColor blueColor] };

NSDictionary *attrDict3 = @{ NSForegroundColorAttributeName: [UIColor orangeColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

//NSBackgroundColorAttributeName 設置字體所在區域背景的顏色,取值為UIColor,默認值為nil

NSDictionary *attrDict4 = @{ NSBackgroundColorAttributeName: [UIColor orangeColor] };

NSDictionary *attrDict5 = @{ NSBackgroundColorAttributeName: [UIColor redColor] };

NSDictionary *attrDict6 = @{ NSBackgroundColorAttributeName: [UIColor cyanColor] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];

雖然 textColor 在 NSFontAttributeName 之前賦值,但是由于

NSFontAttributeName 的屬性效果被NSBackgroundColorAttributeName 屬性沖掉了,所以最終顯示了

textColor 的顏色。

3. NSLigatureAttributeName

//NSLigatureAttributeName 設置連體屬性,取值為NSNumber 對象(整數),0 表示沒有連體字符,1 表示使用默認的連體字符,

// ? ? ? ? ? ? ? ? ? ? ? ?2 表示使用所有連體符號,默認值為 1(iOS 不支持 2)

NSString *ligatureStr = @"flush";

NSDictionary *attrDict1 = @{ NSLigatureAttributeName: [NSNumber numberWithInt: 0],

NSFontAttributeName: [UIFont fontWithName: @"futura" size: 30] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: ligatureStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSLigatureAttributeName: @(1),

NSFontAttributeName: [UIFont fontWithName: @"futura" size: 30]

};

_label02.attributedText = [[NSAttributedString alloc] initWithString: ligatureStr attributes: attrDict2];

由于要展示連體字符,所以將前面使用的帶有中文的字符串換成 flush

NSLigatureAttributeName的取值為NSNumber對象,所以不能直接將一個整數值賦給它,創建 NSNumber 對象的方法有很多,或者可以簡寫成 @(int)

注意觀察字母f和l之間的變化。

感覺連寫就是一個藝術字功能,當字符f和l組合使用組合符號(所謂的字形(glyph))繪制時,看起來確實更加美觀。但是并非所有的字符之間都有組合符號,事實上,只有某些字體中得某些字符的組合(如字符f和l,字符f和i等)才具有美觀的組合符號。

4. NSKernAttributeName

//NSKernAttributeName 設定字符間距,取值為 NSNumber 對象(整數),正值間距加寬,負值間距變窄

NSDictionary *attrDict1 = @{ NSKernAttributeName: @(-3),

NSFontAttributeName: [UIFont systemFontOfSize: 20]

};

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSKernAttributeName: @(0),

NSFontAttributeName: [UIFont systemFontOfSize: 20]

};

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSKernAttributeName: @(10),

NSFontAttributeName: [UIFont systemFontOfSize: 20]

};

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

5. NSStrikethroughStyleAttributeName

//NSStrikethroughStyleAttributeName 設置刪除線,取值為 NSNumber 對象(整數),枚舉常量 NSUnderlineStyle中的值

// NSUnderlineStyleNone ? 不設置刪除線

// NSUnderlineStyleSingle 設置刪除線為細單實線

// NSUnderlineStyleThick ?設置刪除線為粗單實線

// NSUnderlineStyleDouble 設置刪除線為細雙實線

NSDictionary *attrDict1 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleThick),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleDouble),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

注意:

雖然使用了枚舉常量,但是枚舉常量的本質仍為整數,所以同樣必須先轉化為 NSNumber 才能使用

刪除線和下劃線使用相同的枚舉常量作為其屬性值

目前iOS中只有上面列出的4中效果,雖然我們能夠在頭文件中發現其他更多的取值,但是使用后沒有任何效果

可以看出,中文和英文刪除線的位置有所不同

另外,刪除線屬性取值除了上面的4種外,其實還可以取其他整數值,有興趣的可以自行試驗,取值為 0 - 7時,效果為單實線,隨著值得增加,單實線逐漸變粗,取值為 9 - 15時,效果為雙實線,取值越大,雙實線越粗。

NSDictionary *attrDict1 = @{ NSStrikethroughStyleAttributeName: @(1),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSStrikethroughStyleAttributeName: @(3),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSStrikethroughStyleAttributeName: @(7),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

6. NSStrikethroughColorAttributeName

//NSStrikethroughColorAttributeName 設置刪除線顏色,取值為 UIColor 對象,默認值為黑色

NSDictionary *attrDict1 = @{ NSStrikethroughColorAttributeName: [UIColor blueColor],

NSStrikethroughStyleAttributeName: @(1),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSStrikethroughColorAttributeName: [UIColor orangeColor],

NSStrikethroughStyleAttributeName: @(3),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSStrikethroughColorAttributeName: [UIColor greenColor],

NSStrikethroughStyleAttributeName: @(7),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

7. NSUnderlineStyleAttributeName

下劃線除了線條位置和刪除線不同外,其他的都可以完全參照刪除線設置。

//NSUnderlineStyleAttributeName 設置下劃線,取值為 NSNumber 對象(整數),枚舉常量 NSUnderlineStyle中的值,與刪除線類似

NSDictionary *attrDict1 = @{ NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSUnderlineStyleAttributeName: @(NSUnderlineStyleThick),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSUnderlineStyleAttributeName: @(NSUnderlineStyleDouble),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

8. NSUnderlineColorAttributeName

可以完全參照下劃線顏色設置

//NSUnderlineColorAttributeName 設置下劃線顏色,取值為 UIColor 對象,默認值為黑色

NSDictionary *attrDict1 = @{ NSUnderlineColorAttributeName: [UIColor blueColor],

NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSUnderlineColorAttributeName: [UIColor orangeColor],

NSUnderlineStyleAttributeName: @(NSUnderlineStyleThick),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSUnderlineColorAttributeName: [UIColor greenColor],

NSUnderlineStyleAttributeName: @(NSUnderlineStyleDouble),

NSFontAttributeName: [UIFont systemFontOfSize:20] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

9. NSStrokeWidthAttributeName

//NSStrokeWidthAttributeName 設置筆畫寬度,取值為 NSNumber 對象(整數),負值填充效果,正值中空效果

NSDictionary *attrDict1 = @{ NSStrokeWidthAttributeName: @(-3),

NSFontAttributeName: [UIFont systemFontOfSize:30] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSStrokeWidthAttributeName: @(0),

NSFontAttributeName: [UIFont systemFontOfSize:30] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSStrokeWidthAttributeName: @(3),

NSFontAttributeName: [UIFont systemFontOfSize:30] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

10. NSStrokeColorAttributeName

//NSStrokeColorAttributeName 填充部分顏色,不是字體顏色,取值為 UIColor 對象

NSDictionary *attrDict1 = @{ NSStrokeWidthAttributeName: @(-3),

NSStrokeColorAttributeName: [UIColor orangeColor],

NSFontAttributeName: [UIFont systemFontOfSize:30] };

_label01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];

NSDictionary *attrDict2 = @{ NSStrokeWidthAttributeName: @(0),

NSStrokeColorAttributeName: [UIColor blueColor],

NSFontAttributeName: [UIFont systemFontOfSize:30] };

_label02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];

NSDictionary *attrDict3 = @{ NSStrokeWidthAttributeName: @(3),

NSStrokeColorAttributeName: [UIColor greenColor],

NSFontAttributeName: [UIFont systemFontOfSize:30] };

_label03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];

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

推薦閱讀更多精彩內容