iOS UIView非常用方法及屬性詳解

轉(zhuǎn)載自:http://www.cnblogs.com/snake-hand/p/3190021.html

在調(diào)用視圖的drawRect:方法之前嗅战,UIKit 會(huì)自動(dòng)對(duì)描畫(huà)環(huán)境進(jìn)行配置境输,使左上角成為坐標(biāo)系統(tǒng)的原點(diǎn),在這個(gè)環(huán)境中發(fā)生的Quartz調(diào)用都可以正確地在視圖中描畫(huà)。

視圖對(duì)象通過(guò)frame、bounds栗菜、和center屬 性聲明來(lái)跟蹤自己的大小和位置。frame 屬性包含一個(gè)矩形蹄梢,即邊框矩形疙筹,用于指定視圖相對(duì)于其父視圖坐標(biāo)系統(tǒng)的位置和大小。bounds 屬性也包含一個(gè)矩形禁炒,即邊界矩形而咆,負(fù)責(zé)定義視圖相對(duì)于本地坐標(biāo)系統(tǒng)的位置和大小。雖然邊界矩形的原點(diǎn)通常被設(shè)置為(0, 0)幕袱,但這并不是必須的暴备。center 屬性包含邊框矩形的中心點(diǎn)。

當(dāng)您在代碼中通過(guò)initWithFrame:方法創(chuàng)建一個(gè)視圖對(duì)象時(shí)们豌,其frame 屬性就會(huì)被設(shè)置涯捻。該方法同時(shí)也將bounds 矩形的原點(diǎn)初始化為(0.0, 0.0),大小則和視圖的邊框相同望迎。然后center 屬性會(huì)被設(shè)置為邊框的中心點(diǎn)辰斋。缺省情況下硅确,視圖的邊框并不會(huì)被父視圖的邊框裁剪。如果您希望讓一個(gè)視圖裁剪其子視圖,需要將其clipsToBounds屬性設(shè)置為YES约计。

舉例來(lái)說(shuō)珊豹,UIView類(lèi)中包含一個(gè)transform屬性聲明惑淳,您可以通過(guò)它來(lái)對(duì)整個(gè)視圖實(shí)行各種類(lèi)型的平移口渔、比例縮放、和變焦縮放效果蒿涎。缺省情況下哀托,這個(gè)屬性的值是一個(gè)恒等變換,不會(huì)改變視圖的外觀劳秋。在加入變換之前仓手,首先要得到該屬性中存儲(chǔ)的CGAffineTransform結(jié)構(gòu)胖齐,用相應(yīng)的Core Graphics 函數(shù)實(shí)行變換,然后再將修改后的變換結(jié)構(gòu)重新賦值給視圖的transform 屬性嗽冒。

視圖的contentMode屬性決定了邊界變化和縮放操作作用到視圖上產(chǎn)生的效果呀伙。缺省情況下,這個(gè)屬性的值被設(shè)置為UIViewContentModeScaleToFill添坊,意味著視圖內(nèi)容總是被縮放剿另,以適應(yīng)新的邊框尺寸。不同的UIViewContentMode常量(比如UIViewContentModeTop和UIViewContentModeBottomRight)可以使當(dāng)前的內(nèi)容在視圖的不同角落或沿著視圖的不同邊界顯示贬蛙,還有一種模式可以將內(nèi)容顯示在視圖的中心雨女。

當(dāng)您希望在應(yīng)用程序中實(shí)現(xiàn)尺寸可調(diào)整的控件時(shí),請(qǐng)務(wù)必考慮使用內(nèi)容模式阳准。內(nèi)容模式通常有助于避免視圖內(nèi)容的描畫(huà)氛堕,但是當(dāng)您希望對(duì)縮放和尺寸調(diào)整過(guò)程中的視圖外觀進(jìn)行特別的控制時(shí),也可以使用UIViewContentModeRedraw模式如果視圖的autoresizesSubviews屬性聲明被設(shè)置為YES野蝇,則其子視圖會(huì)根據(jù)autoresizingMask屬性的值自動(dòng)進(jìn)行尺寸調(diào)整讼稚。否則,應(yīng)用程序就必須通過(guò)重載layoutSubviews方法來(lái)提供自己的實(shí)現(xiàn)浪耘。如果要使一個(gè)視圖和其父視圖左下角的相對(duì)位置保持不變, 可以加入U(xiǎn)IViewAutoresizingFlexibleRightMargin和UIViewAutoresizingFlexibleTopMargin常量塑崖,并將結(jié)果賦值給autoresizingMask屬性七冲。當(dāng)同一個(gè)軸向有多個(gè)部分被設(shè)置為可變時(shí),尺寸調(diào)整的裕量會(huì)被平均分配到各個(gè)部分上规婆。UIViewAutoresizingNone這個(gè)常量如果被設(shè)置澜躺,視圖將不進(jìn)行自動(dòng)尺寸調(diào)整。

UIViewAutoresizingFlexibleHeight這個(gè)常量如果被設(shè)置抒蚜,視圖的高度將和父視圖的高度一起成比例變化掘鄙。否則,視圖的高度將保持不變嗡髓。

UIViewAutoresizingFlexibleWidth這個(gè)常量如果被設(shè)置操漠,視圖的寬度將和父視圖的寬度一起成比例變化。否則饿这,視圖的寬度將保持不變浊伙。

UIViewAutoresizingFlexibleLeftMargin這個(gè)常量如果被設(shè)置,視圖的左邊界將隨著父視圖寬度的變化

而按比例進(jìn)行調(diào)整长捧。否則嚣鄙,視圖和其父視圖的左邊界的相對(duì)位置將保持不變。

UIViewAutoresizingFlexibleRightMargin這個(gè)常量如果被設(shè)置串结,視圖的右邊界將隨著父視圖寬度的變化

而按比例進(jìn)行調(diào)整哑子。否則舅列,視圖和其父視圖的右邊界的相對(duì)位置將保持不變。

UIViewAutoresizingFlexibleBottomMargin這個(gè)常量如果被設(shè)置卧蜓,視圖的底邊界將隨著父視圖高度的變化

而按比例進(jìn)行調(diào)整帐要。否則,視圖和其父視圖的底邊界的相對(duì)位置將保持不變烦却。

UIViewAutoresizingFlexibleTopMargin這個(gè)常量如果被設(shè)置宠叼,視圖的上邊界將隨著父視圖高度的變化

而按比例進(jìn)行調(diào)整。否則其爵,視圖和其父視圖的上邊界的相對(duì)位

置將保持不變冒冬。

如果您通過(guò)Interface Builder配置視圖,則可以用Size 查看器的Autosizing控 制來(lái)設(shè)置每個(gè)視圖的自動(dòng)尺寸調(diào)整行為摩渺。上圖中的靈活寬度及高度常量和Interface Builder 中位于同樣位置的彈簧具有同樣的行為简烤,但是空白常量的行為則是正好相反。換句話說(shuō)摇幻,如果要將靈活右空白的自動(dòng)尺寸調(diào)整行為應(yīng)用到Interface Builder 的某個(gè)視圖横侦,必須使相應(yīng)方向空間的Autosizing控制為空,而不是放置一個(gè)支柱绰姻。

如果視圖的autoresizesSubviews屬性被設(shè)置為NO枉侧,則該視圖的直接子視圖的所有自動(dòng)尺寸調(diào)整行為將被忽略。類(lèi)似地狂芋, 如果一個(gè)子視圖的自動(dòng)尺寸調(diào)整掩碼被設(shè)置為

UIViewAutoresizingNone榨馁,則該子視圖的尺寸將不會(huì)被調(diào)整,因而其直接子視圖的尺寸也不會(huì)被調(diào)整帜矾。

視圖層次中的父-子關(guān)系可以幫助我們定義應(yīng)用程序中負(fù)責(zé)處理觸摸事件的對(duì)象鏈創(chuàng)建一個(gè)新的視圖對(duì)象時(shí)翼虫,需要為其分配內(nèi)存,并向該對(duì)象發(fā)送一個(gè)initWithFrame:消息屡萤,以對(duì)其進(jìn)行初始化珍剑。舉例來(lái)說(shuō),如果您要?jiǎng)?chuàng)建一個(gè)新的UIView類(lèi)的實(shí)例作為其它視圖的容器死陆,則可以使用下面的代碼:

CGRectviewRect = CGRectMake(0, 0, 100, 100);

UIView* myView = [[UIView alloc]initWithFrame:viewRect];

在iPhone 程序中招拙,有兩個(gè)地方最常用于創(chuàng)建視圖和子視圖, 它們是應(yīng)用程序委托對(duì)象的applicationDidFinishLaunching:方法和視圖控制器的loadView方法措译。

調(diào)用父視圖的addSubview:方法來(lái)添加視圖迫像,該方法將一個(gè)視圖添加到子視圖列表的最后。

調(diào)用父視圖的insertSubview:...方法可以在父視圖的子視圖列表中間插入視圖瞳遍。

調(diào)用父視圖的bringSubviewToFront: 闻妓、sendSubviewToBack: 、或

exchangeSubviewAtIndex:withSubviewAtIndex:方法可以對(duì)父視圖的子視圖進(jìn)行重新排序掠械。使用這些方法比從父視圖中移除子視圖并再次插入要快一些由缆。

調(diào)用子視圖(而不是父視圖)的removeFromSuperview方法可以將子視圖從父視圖中移除注祖。

創(chuàng)建一個(gè)帶有視圖的窗口

- (void)applicationDidFinishLaunching:(UIApplication *)application {

// Create the window object and assign it to the

// window instance variable of the application delegate.

window = [[UIWindow alloc] initWithFrame:[[UIScreenmainScreen]? bounds]];

window.backgroundColor= [UIColor whiteColor];

// Create a simple red square

CGRect redFrame = CGRectMake(10, 10, 100, 100);

UIView *redView = [[UIView alloc] initWithFrame:redFrame];

redView.backgroundColor = [UIColor redColor];

// Create a simple blue square

CGRect blueFrame = CGRectMake(10, 150, 100, 100);

UIView *blueView = [[UIView alloc] initWithFrame:blueFrame];

blueView.backgroundColor = [UIColor blueColor];

// Add the square views to the window

[window addSubview:redView];

[window addSubview:blueView];

// Once added to the window, release the views to avoid the

// extra retain count on each of them.

[redView release];

[blueView release];

// Show the window.

[window makeKeyAndVisible];

}

當(dāng)您為某個(gè)視圖添加子視圖時(shí),UIKit 會(huì)向相應(yīng)的父子視圖發(fā)送幾個(gè)消息均唉,通知它們當(dāng)前發(fā)生的狀態(tài)變化是晨。您可以在自己的定制視圖中對(duì)諸如willMoveToSuperview: 、willMoveToWindow: 舔箭、willRemoveSubview: 罩缴、didAddSubview: 、didMoveToSuperview层扶、和didMoveToWindow這樣的方法進(jìn)行重載箫章,以便在事件發(fā)生的前后進(jìn)行必要的處理,并根據(jù)發(fā)生的變化更新視圖的狀態(tài)信息镜会。

在視圖層次建立之后檬寂,您可以通過(guò)視圖的superview屬性來(lái)取得其父視圖,或者通過(guò)subviews屬性取得視圖的子視圖戳表。您也可以通過(guò)isDescendantOfView:方法來(lái)判定一個(gè)視圖是否在其父視圖的視圖層中桶至。一個(gè)視圖層次的根視圖沒(méi)有父視圖,因此其superview 屬性被設(shè)置為nil匾旭。對(duì)于當(dāng)前被顯示在屏幕上的視圖镣屹,窗口對(duì)象通常是整個(gè)視圖層次的根視圖。

UIView 類(lèi)定義了下面這些方法价涝,用于在不同的視圖本地坐標(biāo)系統(tǒng)之間進(jìn)行坐標(biāo)轉(zhuǎn)換:

convertPoint:fromView:

convertRect:fromView:

convertPoint:toView:

convertRect:toView:

UIWindow 的版本則使用窗口坐標(biāo)系統(tǒng)女蜈。

convertPoint:fromWindow:

convertRect:fromWindow:

convertPoint:toWindow:

convertRect:toWindow:

UIView 類(lèi)中包含一個(gè)tag屬性。借助這個(gè)屬性飒泻,您可以通過(guò)一個(gè)整數(shù)值來(lái)標(biāo)識(shí)一個(gè)視圖對(duì)象鞭光。您可以通過(guò)這個(gè)屬性來(lái)唯一標(biāo)識(shí)視圖層次中的視圖吏廉,以及在運(yùn)行時(shí)進(jìn)行視圖的檢索(基于tag 標(biāo)識(shí)的檢索比您自行遍歷視圖層次要快)泞遗。tag 屬性的缺省值為0。您可以通過(guò)UIView 的viewWithTag:方法來(lái)檢索標(biāo)識(shí)過(guò)的視圖

動(dòng)畫(huà)塊從調(diào)用UIView 的beginAnimations:context:類(lèi)方法開(kāi)始席覆,而以調(diào)用commitAnimations類(lèi) 方法作為結(jié)束史辙。在這兩個(gè)調(diào)用之間,您可以配置動(dòng)畫(huà)的參數(shù)和改變希望實(shí)行動(dòng)畫(huà)的屬性值佩伤。一旦調(diào)用commitAnimations 方法聊倔,UIKit 就會(huì)開(kāi)始執(zhí)行動(dòng)畫(huà),即把給定屬性從當(dāng)前值到新值的變化過(guò)程用動(dòng)畫(huà)表現(xiàn)出來(lái)生巡。動(dòng)畫(huà)塊可以被嵌套耙蔑,但是在最外層的動(dòng)畫(huà)塊提交之前,被嵌套的動(dòng)畫(huà)不會(huì)被執(zhí)行孤荣。

frame 視圖的邊框矩形甸陌,位于父視圖的坐標(biāo)系中须揣。

bounds 視圖的邊界矩形,位于視圖的坐標(biāo)系中钱豁。

center 邊框的中心耻卡,位于父視圖的坐標(biāo)系中。

transform 視圖上的轉(zhuǎn)換矩陣牲尺,相對(duì)于視圖邊界的中心卵酪。

alpha 視圖的alpha 值,用于確定視圖的透明度谤碳。

用setAnimationStartDate:方法來(lái)設(shè)置動(dòng)畫(huà)在commitAnimations 方法返回之后的發(fā)生日期溃卡。缺省行為是使動(dòng)畫(huà)立即在動(dòng)畫(huà)線程中執(zhí)行。

用setAnimationDelay:方法來(lái)設(shè)置實(shí)際發(fā)生動(dòng)畫(huà)和commitAnimations 方法返回的時(shí)間點(diǎn)之間的間隔估蹄。

用setAnimationDuration:方法來(lái)設(shè)置動(dòng)畫(huà)持續(xù)的秒數(shù)塑煎。

用setAnimationCurve:方法來(lái)設(shè)置動(dòng)畫(huà)過(guò)程的相對(duì)速度,比如動(dòng)畫(huà)可能在啟示階段逐漸加速臭蚁,而在結(jié)束階段逐漸減速最铁,或者整個(gè)過(guò)程都保持相同的速度。

用setAnimationRepeatCount:方法來(lái)設(shè)置動(dòng)畫(huà)的重復(fù)次數(shù)垮兑。

用setAnimationRepeatAutoreverses:方法來(lái)指定動(dòng)畫(huà)在到達(dá)目標(biāo)值時(shí)是否自動(dòng)反向播放冷尉。您可以結(jié)合使用這個(gè)方法和setAnimationRepeatCount:方法,使各個(gè)屬性在初始值和目標(biāo)值之間平滑切換一段時(shí)間系枪。

您可以通過(guò)UIView 的setAnimationDelegate: 類(lèi)方法來(lái)設(shè)置委托雀哨, 并通過(guò)setAnimationWillStartSelector: 和setAnimationDidStopSelector:方法來(lái)指定接收消息的選擇器方法。消息處理方法的形式如下:

- (void)animationWillStart:(NSString *)animationID context:(void *)context;

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void

*)context;

上面兩個(gè)方法的animationID 和context 參數(shù)和動(dòng)畫(huà)塊開(kāi)始時(shí)傳beginAnimations:context:方法的參數(shù)相同:animationID- 應(yīng)用程序提供的字符串私爷,用于標(biāo)識(shí)一個(gè)動(dòng)畫(huà)塊中的動(dòng)畫(huà)雾棺。

context- 也是應(yīng)用程序提供的對(duì)象,用于向委托對(duì)象傳遞額外的信息衬浑。

setAnimationDidStopSelector:選擇器方法還有一個(gè)參數(shù)—即一個(gè)布爾值捌浩。如果動(dòng)畫(huà)順利完成,沒(méi)有被其它動(dòng)畫(huà)取消或停止工秩,則該值為YES尸饺。

任何時(shí)候,當(dāng)視圖的布局發(fā)生改變時(shí)助币,UIKit 會(huì)激活每個(gè)視圖的自動(dòng)尺寸調(diào)整行為浪听,然后調(diào)用各自的layoutSubviews方法,使您有機(jī)會(huì)進(jìn)一步調(diào)整子視圖的幾何尺寸眉菱。

您的應(yīng)用程序調(diào)用視圖的setNeedsLayout或layoutIfNeeded方法來(lái)強(qiáng)制進(jìn)行布局迹栓。

您的應(yīng)用程序調(diào)用視圖背后的層對(duì)象的setNeedsLayout方法來(lái)強(qiáng)制進(jìn)行布局。

您也可以用layoutSubviews方法來(lái)調(diào)整作為子層鏈接到視圖層的定制CALayer對(duì)象有些時(shí)候俭缓,應(yīng)用程序數(shù)據(jù)模型的變化會(huì)影響到相應(yīng)的用戶界面克伊。為了反映這些變化叉抡,您可以將相應(yīng)的視圖標(biāo)識(shí)為需要刷新(通過(guò)調(diào)用setNeedsDisplay或setNeedsDisplayInRect:方法)

您可以通過(guò)改變視圖的hidden屬性聲明來(lái)隱藏或顯示視圖

初始化一個(gè)視圖的子類(lèi)

- (id)initWithFrame:(CGRect)aRect {

self = [super initWithFrame:aRect];

if (self) {

// setup the initial properties of

the view

...

}

return self;

}

在iPhone OS 中,裝載nib 的代

碼并不通過(guò)initWithFrame:方法來(lái)實(shí)例化新的視圖對(duì)象答毫,而是通過(guò)NSCoding 協(xié)議定義的initWithCoder:方法來(lái)進(jìn)行褥民。

drawRect:方法的一個(gè)簡(jiǎn)單實(shí)現(xiàn),即在視圖邊界描畫(huà)一個(gè)10像素寬的紅色邊界洗搂。由于UIKit 描畫(huà)操作的實(shí)現(xiàn)也是基于Quartz消返,所以您可以像下面這樣混合使用不同的描畫(huà)調(diào)用來(lái)得到期望的結(jié)果。

- (void)drawRect:(CGRect)rect {

CGContextRefcontext =UIGraphicsGetCurrentContext();

CGRect myFrame = self.bounds;

CGContextSetLineWidth(context, 10);

[[UIColor redColor] set];

UIRectFrame(myFrame);?

}

處理觸摸事件的視圖通常需要實(shí)現(xiàn)下面的所有方法

touchesBegan:withEvent:

touchesMoved:withEvent:

touchesEnded:withEvent:

touchesCancelled:withEvent:

激活多點(diǎn)觸摸事件:multipleTouchEnabled屬性聲明設(shè)置為YES耘拇。

您可以通過(guò)改變視圖的userInteractionEnabled屬性值來(lái)控制視圖是否可以對(duì)事件進(jìn)行處理撵颊。

還可以使用UIApplication 對(duì)象的beginIgnoringInteractionEvents和endIgnoringInteractionEvents方法

UIKit 會(huì)通過(guò)UIView 的hitTest:withEvent:和pointInside:withEvent:方法來(lái)確定觸摸事件是否發(fā)生在指定的視圖上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惫叛,一起剝皮案震驚了整個(gè)濱河市倡勇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘉涌,老刑警劉巖妻熊,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異仑最,居然都是意外死亡扔役,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)警医,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)亿胸,“玉大人,你說(shuō)我怎么就攤上這事预皇〕扌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吟温,是天一觀的道長(zhǎng)序仙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)溯街,這世上最難降的妖魔是什么诱桂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任洋丐,我火速辦了婚禮呈昔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘友绝。我一直安慰自己堤尾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布迁客。 她就那樣靜靜地躺著郭宝,像睡著了一般辞槐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粘室,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天榄檬,我揣著相機(jī)與錄音,去河邊找鬼衔统。 笑死鹿榜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锦爵。 我是一名探鬼主播舱殿,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼险掀!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讯榕,失蹤者是張志新(化名)和其女友劉穎镇饺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體埠啃,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焚碌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霸妹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片十电。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖叹螟,靈堂內(nèi)的尸體忽然破棺而出鹃骂,到底是詐尸還是另有隱情,我是刑警寧澤罢绽,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布畏线,位于F島的核電站,受9級(jí)特大地震影響良价,放射性物質(zhì)發(fā)生泄漏寝殴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一明垢、第九天 我趴在偏房一處隱蔽的房頂上張望蚣常。 院中可真熱鬧,春花似錦痊银、人聲如沸抵蚊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)贞绳。三九已至谷醉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冈闭,已是汗流浹背俱尼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萎攒,地道東北人号显。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像躺酒,于是被迫代替她去往敵國(guó)和親押蚤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容