iOS基礎(chǔ)之OC簡單控件知識了解(二)

一.UITextField屬性

0.????????enablesReturnKeyAutomatically

默認為No,如果設(shè)置為Yes,文本框中沒有輸入任何字符的話语盈,右下角的返回按鈕是disabled的帝嗡。

1.borderStyle

設(shè)置邊框樣式,只有設(shè)置了才會顯示邊框樣式

text.borderStyle =UITextBorderStyleRoundedRect;

typedef enum {

UITextBorderStyleNone,

UITextBorderStyleLine,

UITextBorderStyleBezel,

UITextBorderStyleRoundedRect

}UITextBorderStyle;

2.backgroundColor

設(shè)置輸入框的背景顏色罢荡,此時設(shè)置為白色?如果使用了自定義的背景圖片邊框會被忽略掉

text.backgroundColor =[UIColor whiteColor];

3.background

設(shè)置背景

text.background = [UIImageimageNamed:@"dd.png"];//UITextField 的背景,注意只有UITextBorderStyleNone的時候改屬性有效

設(shè)置enable為no時吆玖,textfield的背景

text.disabledBackground = [UIImageimageNamed:@"cc.png"];

4.placeholder

當輸入框沒有內(nèi)容時复局,?提示內(nèi)容為password

text.placeholder =@"password";

5.font

設(shè)置輸入框內(nèi)容的字體樣式和大小

text.font = [UIFontfontWithName:@"Arial" size:20.0f];

6.?textColor

設(shè)置字體顏色

text.textColor = [UIColor redColor];

7. clearButtonMode

輸入框中是否有個叉號,在什么時候顯示晤柄,用于一次性刪除輸入框中的內(nèi)容

text.clearButtonMode = UITextFieldViewModeAlways;

typedef enum {

UITextFieldViewModeNever, 重不出現(xiàn)

UITextFieldViewModeWhileEditing,?編輯時出現(xiàn)

UITextFieldViewModeUnlessEditing, 除了編輯外都出現(xiàn)

UITextFieldViewModeAlways  一直出現(xiàn)

} UITextFieldViewMode;

8. text

輸入框中一開始就有的文字

text.text = @"一開始就在輸入框的文字";

9. secureTextEntry

每輸入一個字符就變成點?用來輸入密碼時擦剑,設(shè)置這個屬性。

text.secureTextEntry = YES;

10. autocorrectionType

是否糾錯

text.autocorrectionType =UITextAutocorrectionTypeNo;

typedef enum {

UITextAutocorrectionTypeDefault,?默認

UITextAutocorrectionTypeNo,  不自動糾錯

UITextAutocorrectionTypeYes, 自動糾錯

} UITextAutocorrectionType;

11. clearsOnBeginEditing

再次編輯就清空

text.clearsOnBeginEditing = YES;

12. textAlignment

內(nèi)容對齊方式

text.textAlignment =UITextAlignmentLeft;

13. contentVerticalAlignment

內(nèi)容的垂直對齊方式? UITextField繼承自UIControl,此類中有一個屬性contentVerticalAlignment

text.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter;

14. adjustsFontSizeToFitWidth

設(shè)置為YES時文本會自動縮小以適應(yīng)文本窗口大小.默認是保持原來大小,而讓長文本滾動

textFied.adjustsFontSizeToFitWidth =YES;

//設(shè)置自動縮小顯示的最小字體大小

text.minimumFontSize = 20;

15. keyboardType

設(shè)置鍵盤的樣式

text.keyboardType =UIKeyboardTypeNumberPad;

typedef enum {

UIKeyboardTypeDefault, ??  默認鍵盤可免,支持所有字符

UIKeyboardTypeASCIICapable, 支持ASCII的默認鍵盤

UIKeyboardTypeNumbersAndPunctuation, 標準電話鍵盤抓于,支持+*#字符

UIKeyboardTypeURL,? ?? ? ? ? URL鍵盤做粤,支持.com按鈕?只支持URL字符

UIKeyboardTypeNumberPad,? ? ?? ? ?  數(shù)字鍵盤

UIKeyboardTypePhonePad,   電話鍵盤

UIKeyboardTypeNamePhonePad,  電話鍵盤浇借,也支持輸入人名

UIKeyboardTypeEmailAddress,  用于輸入電子?郵件地址的鍵盤

UIKeyboardTypeDecimalPad, ?  數(shù)字鍵盤?有數(shù)字和小數(shù)點

UIKeyboardTypeTwitter,?? ?  優(yōu)化的鍵盤,方便輸入@怕品、#字符

UIKeyboardTypeAlphabet =UIKeyboardTypeASCIICapable,

} UIKeyboardType;

16.autocapitalizationType

首字母是否大寫

text.autocapitalizationType =UITextAutocapitalizationTypeNone;

typedef enum {

UITextAutocapitalizationTypeNone,?不自動大寫

UITextAutocapitalizationTypeWords, 單詞首字母大寫

UITextAutocapitalizationTypeSentences, 句子的首字母大寫

UITextAutocapitalizationTypeAllCharacters,?所有字母都大寫

} UITextAutocapitalizationType;

17. returnKeyType

return鍵變成什么鍵

text.returnKeyType =UIReturnKeyDone;

typedef enum {

UIReturnKeyDefault,?默認?灰色按鈕妇垢,標有Return

UIReturnKeyGo,? ?  標有Go的藍色按鈕

UIReturnKeyGoogle,標有Google的藍色按鈕,用語搜索

UIReturnKeyJoin,標有Join的藍色按鈕

UIReturnKeyNext,標有Next的藍色按鈕

UIReturnKeyRoute,標有Route的藍色按鈕

UIReturnKeySearch,標有Search的藍色按鈕

UIReturnKeySend,標有Send的藍色按鈕

UIReturnKeyYahoo,標有Yahoo的藍色按鈕

UIReturnKeyYahoo,標有Yahoo的藍色按鈕

UIReturnKeyEmergencyCall,?緊急呼叫按鈕

} UIReturnKeyType;

18. keyboardAppearance

鍵盤外觀

textView.keyboardAppearance=UIKeyboardAppearanceDefault肉康;

typedef enum {

UIKeyboardAppearanceDefault闯估,?默認外觀,淺灰色

UIKeyboardAppearanceAlert吼和,   深灰?石墨色

} UIReturnKeyType;

19. delegate

設(shè)置代理?用于實現(xiàn)協(xié)議

text.delegate = self;

20.??rightView

最右側(cè)加圖片是以下代碼 ?左側(cè)類似

UIImageView*image=[[UIImageView alloc] initWithImage:[UIImageimageNamed:@"right.png"]];

text.rightView=image;

text.rightViewMode =UITextFieldViewModeAlways;

typedef enum {

UITextFieldViewModeNever,

UITextFieldViewModeWhileEditing,

UITextFieldViewModeUnlessEditing,

UITextFieldViewModeAlways

} UITextFieldViewMode;

21.editing

是否允許編輯涨薪。

22.界面重寫繪制行為

除了UITextField對象的風格選項,你還可以定制化UITextField對象炫乓,為他添加許多不同的重寫方法刚夺,來改變文本字段的顯示行為。這些方法都會返回一個CGRect結(jié)構(gòu)末捣,制定了文本字段每個部件的邊界范圍侠姑。以下方法都可以重寫。

–?textRectForBounds:  ? //重寫來重置文字區(qū)域

–?drawTextInRect:  ?? ?  //改變繪文字屬性.重寫時調(diào)用super可以按默認圖形屬性繪制,若自己完全重寫繪制函數(shù)箩做,就不用調(diào)用super了.

–?placeholderRectForBounds:  //重寫來重置占位符區(qū)域

–?drawPlaceholderInRect:  //重寫改變繪制占位符屬性.重寫時調(diào)用super可以按默認圖形屬性繪制,若自己完全重寫繪制函數(shù)莽红,就不用調(diào)用super了.

–?borderRectForBounds:  //重寫來重置邊緣區(qū)域

–?editingRectForBounds:  //重寫來重置編輯區(qū)域

–?clearButtonRectForBounds:  //重寫來重置clearButton位置,改變size可能導致button的圖片失真

–?leftViewRectForBounds:

–?rightViewRectForBounds:

22.調(diào)整鍵盤

inputView //代替標準的系統(tǒng)鍵盤

inputAccessoryView //編輯時顯示在系統(tǒng)鍵盤或用戶自定義的inputView上面的視圖

23. delegate

類要遵守UITextFieldDelegate協(xié)議

text.delegate = self; 聲明text的代理是我,我會去實現(xiàn)把鍵盤往下收的方法?這個方法在UITextFieldDelegate里所以我們要遵守UITextFieldDelegate這個協(xié)議

- (BOOL)textFieldShouldReturn:(UITextField*)textField

{

[textresignFirstResponder];? ? //主要是[receiverresignFirstResponder]在哪調(diào)用就能把receiver(text)對應(yīng)的鍵盤往下收

return YES;

}

代理方法

-?(BOOL)textFieldShouldBeginEditing:(UITextField?*)textField{

//返回一個BOOL值邦邦,YES代表允許編輯安吁,NO不允許編輯.

return?YES;

}

-?(void)textFieldDidBeginEditing:(UITextField?*)textField{

//開始編輯時觸發(fā)醉蚁,文本字段將成為first?responder

}

-?(BOOL)textFieldShouldEndEditing:(UITextField?*)textField{

//返回BOOL值,指定是否允許文本字段結(jié)束編輯鬼店,當編輯結(jié)束馍管,文本字段會讓出first?responder

//要想在用戶結(jié)束編輯時阻止文本字段消失,可以返回NO 薪韩,返回NO确沸,點擊鍵盤的返回按鈕會無效果。

//這對一些文本字段必須始終保持活躍狀態(tài)的程序很有用俘陷,比如即時消息

return?NO;

}

- (void)textFieldDidEndEditing:(UITextField*)textField;{

}// 上面返回YES后執(zhí)行;上面返回NO時有可能強制執(zhí)行(e.g.view removed from window)

-?(BOOL)textField:(UITextField*)textField?shouldChangeCharactersInRange:(NSRange)range?replacementString:(NSString?*)string{

//當用戶使用自動更正功能罗捎,把輸入的文字修改為推薦的文字時,就會調(diào)用這個方法拉盾。

//這對于想要加入撤銷選項的應(yīng)用程序特別有用

//可以跟蹤字段內(nèi)所做的最后一次修改桨菜,也可以對所有編輯做日志記錄,用作審計用途。

//要防止文字被改變可以返回NO

//這個方法的參數(shù)中有一個NSRange對象捉偏,指明了被改變文字的位置倒得,建議修改的文本也在其中

return?YES;

}

-?(BOOL)textFieldShouldClear:(UITextField?*)textField{

//返回一個BOOL值指明是否允許根據(jù)用戶請求清除內(nèi)容

//可以設(shè)置在特定條件下才允許清除內(nèi)容

return?YES;

}

-(BOOL)textFieldShouldReturn:(UITextField?*)textField{

//返回一個BOOL值,指明是否允許在按下回車鍵時結(jié)束編輯

//如果允許要調(diào)用resignFirstResponder?方法夭禽,這回導致結(jié)束編輯霞掺,而鍵盤會被收起[textField?resignFirstResponder];

//查一下resign這個單詞的意思就明白這個方法了

return?YES;

}

24.通知

UITextField派生自UIControl,所以UIControl類中的通知系統(tǒng)在文本字段中也可以使用讹躯。除了UIControl類的標準事件菩彬,你還可以使用下列UITextField類特有的事件

UITextFieldTextDidBeginEditingNotification

UITextFieldTextDidChangeNotification

UITextFieldTextDidEndEditingNotification

當文本字段退出編輯模式時觸發(fā)。通知的object屬性存儲了最終文本潮梯。

因為文本字段要使用鍵盤輸入文字骗灶,所以下面這些事件發(fā)生時,也會發(fā)送動作通知

UIKeyboardWillShowNotification  //鍵盤顯示之前發(fā)送

UIKeyboardDidShowNotification?  //鍵盤顯示之后發(fā)送

UIKeyboardWillHideNotification  //鍵盤隱藏之前發(fā)送

UIKeyboardDidHideNotification?  //鍵盤隱藏之后發(fā)送

25.Stroyboard中:

1秉馏、Text?:設(shè)置文本框的默認文本耙旦。

2、Placeholder?:?可以在文本框中顯示灰色的字萝究,用于提示用戶應(yīng)該在這個文本框輸入什么內(nèi)容免都。當這個文本框中輸入了數(shù)據(jù)時,用于提示的灰色的字將會自動消失糊肤。

3琴昆、Background?:

4、Disabled?:?若選中此項馆揉,用戶將不能更改文本框內(nèi)容业舍。

5、接下來是三個按鈕,用來設(shè)置對齊方式舷暮。

6态罪、Border Style?:?選擇邊界風格。

7下面、Clear Button?:?這是一個下拉菜單复颈,你可以選擇清除按鈕什么時候出現(xiàn),所謂清除按鈕就是出一個現(xiàn)在文本框右邊的小?X?沥割,你可以有以下選擇:

7.1 Never appears?:?從不出現(xiàn)

7.2 Appears while editing?:?編輯時出現(xiàn)

7.3 Appears unlessediting?:

7.4 Is always visible?:?總是可見

8耗啦、Clear when editingbegins?:?若選中此項,則當開始編輯這個文本框時机杜,文本框中之前的內(nèi)容會被清除掉帜讲。比如,你現(xiàn)在這個文本框?A?中輸入了?"What"?椒拗,之后去編輯文本框?B似将,若再回來編輯文本框?A?,則其中的?"What"?會被立即清除蚀苛。

9在验、Text Color?:?設(shè)置文本框中文本的顏色。

10堵未、Font?:?設(shè)置文本的字體與字號腋舌。

11、Min Font Size?:?設(shè)置文本框可以顯示的最小字體(不過我感覺沒什么用)

12兴溜、Adjust To Fit?:?指定當文本框尺寸減小時侦厚,文本框中的文本是否也要縮小耻陕。選擇它拙徽,可以使得全部文本都可見,即使文本很長诗宣。但是這個選項要跟?Min Font Size?配合使用膘怕,文本再縮小,也不會小于設(shè)定的?Min Font Size?召庞。

接下來的部分用于設(shè)置鍵盤如何顯示岛心。

13、Captitalization?:?設(shè)置大寫篮灼。下拉菜單中有四個選項:

13.1 None?:?不設(shè)置大寫

13.2 Words?:?每個單詞首字母大寫忘古,這里的單詞指的是以空格分開的字符串

13.3 Sentances?:?每個句子的第一個字母大寫,這里的句子是以句號加空格分開的字符串

13.4 All Characters?:?所以字母大寫

14诅诱、Correction?:?檢查拼寫髓堪,默認是?YES?。

15、Keyboard?:?選擇鍵盤類型干旁,比如全數(shù)字驶沼、字母和數(shù)字等。

16争群、Appearance:

17回怜、Return Key?:?選擇返回鍵,可以選擇?Search?换薄、?Return?玉雾、?Done?等。

18轻要、Auto-enable ReturnKey?:?如選擇此項抹凳,則只有至少在文本框輸入一個字符后鍵盤的返回鍵才有效。

19伦腐、Secure?:?當你的文本框用作密碼輸入框時赢底,可以選擇這個選項,此時柏蘑,字符顯示為星號幸冻。

1.Alignment Horizontal?水平對齊方式

2.Alignment Vertical?垂直對齊方式

3.用于返回一個BOOL值 輸入框是否?Selected(選中)Enabled(可用) Highlighted(高亮)

26.UITextField實例一 :?UITextField限制字符 (只為數(shù)字)

iOS代碼

1.#define?ALPHA?@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz?"

2.#define?NUMBERS?@"0123456789n"

3.#define?ALPHANUM?@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?"

4.#define?NUMBERSPERIOD?@"0123456789."

5.

6.

7.-?(BOOL)textField:(UITextField?*)textField?shouldChangeCharactersInRange:(NSRange)range?replacementString:(NSString?*)string

8.{

9.NSCharacterSet?*cs;

10.cs?=?[[NSCharacterSet?characterSetWithCharactersInString:NUMBERSPERIOD?]?invertedSet];//invertedSet方法是去反字符,把所有的除了數(shù)字的字符都找出來

11.

12.NSString?*filtered?=?[[string?componentsSeparatedByCharactersInSet:cs]?componentsJoinedByString:@""];//componentsSeparatedByCharactersInSet方法是把輸入框輸入的字符string根據(jù)cs中字符一個一個去除cs字符并分割成單字符并轉(zhuǎn)化為NSArray,然后componentsJoinedByString是把NSArray的字符通過""無間隔連接成一個NSString字符賦給filtered.就是只剩數(shù)字了.

13.

14.

15.BOOL?basicTest?=?[string?isEqualToString:filtered];

16.if(!basicTest)

17.

18.{

19.UIAlertView*?alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"

20.message:@"請輸入數(shù)字"

21.delegate:nil

22.cancelButtonTitle:@"確定"

23.otherButtonTitles:nil];

24.

25.[alert?show];

26.[alert?release];

27.returnNO;

28.}

29.

30.//?Add?any?predicate?testing?here

31.returnbasicTest;

32.}

#define NUMBERS @”0123456789n” (這個代表可以輸入數(shù)字和換行,請注意這個n咳焚,如果不寫這個洽损,Done按鍵將不會觸發(fā),如果用在SearchBar中革半,將會不觸發(fā)Search事件碑定,因為你自己限制不讓輸入n,好慘又官,我在項目中才發(fā)現(xiàn)的延刘。) 所以,如果你要限制輸入英文和數(shù)字的話六敬,就可以把這個定義為: #define kAlphaNum@”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789″碘赖。 當然,你還可以在以上方法return之前外构,做一提示的普泡,比如提示用戶只能輸入數(shù)字之類的。如果你覺得有需要的話审编。

實例:限制只能輸入一定長度的字符

ios代碼

1.-?(BOOL)textField:(UITextField?*)textField?shouldChangeCharactersInRange:(NSRange)range?replacementString:(NSString?*)string;

2.{//string就是此時輸入的那個字符textField就是此時正在輸入的那個輸入框返回YES就是可以改變輸入框的值NO相反

3.

4.if([string?isEqualToString:@"n"])//按回車可以改變

5.{

6.returnYES;

7.}

8.

9.NSString?*?toBeString?=?[textField.text?stringByReplacingCharactersInRange:range?withString:string];//得到輸入框的內(nèi)容

10.

11.if(self.myTextField?==?textField)//判斷是否時我們想要限定的那個輸入框

12.{

13.if([toBeString?length]?>20)?{//如果輸入框內(nèi)容大于20則彈出警告

14.textField.text?=?[toBeString?substringToIndex:20];

15.UIAlertView?*alert?=?[[[UIAlertView?alloc]?initWithTitle:nil?message:@"超過最大字數(shù)不能輸入了"delegate:nil?cancelButtonTitle:@"Ok"otherButtonTitles:nil,?nil]?autorelease];

16.[alert?show];

17.returnNO;

18.}

19.}

20.returnYES;

21.}

27.UITextField實例二:

在UISearchBar中,當輸入信息改變時,它就會調(diào)用textDidChange函數(shù),但是UITextField沒有這個功能,唯一與這個類似的shouldChangeCharactersInRange函數(shù),也是在文件還沒有改變前就調(diào)用了,而不是在改變后調(diào)用,要想實現(xiàn)這個功能,我們可以增加事件監(jiān)聽的方式.先來看看Objective-C提供的接口:

ios代碼

1.//?add?target/action?for?particular?event.?you?can?call?this?multiple?times?and?you?can?specify?multiple?target/actions?for?a?particular?event.

2.給特殊事件添加目標或者方法撼班,你能夠調(diào)用這個方法多次,給特殊事件指定很多目標或者方法

3.//?passing?in?nil?as?the?target?goes?up?the?responder?chain.?The?action?may?optionally?include?the?sender?and?the?event?in?that?order

4.給target傳遞空垒酬,會建立響應(yīng)鏈砰嘁,在這行命令眯亦,方法可以選擇包含方法發(fā)送者和事件兩個參數(shù)。

5.//?the?action?cannot?be?NULL.方法不能為空般码。

6.-?(void)addTarget:(id)target?action:(SEL)action?forControlEvents:(UIControlEvents)controlEvents;

怎么去使用這個接口呢?主要分為兩步,第一步就是在UItextField組件中增加對文件編輯改變時事件的監(jiān)聽,然后再實現(xiàn)監(jiān)聽器監(jiān)聽到事件時,所調(diào)用的方法.

ios代碼

1.//第一步,對組件增加監(jiān)聽器可以在viewDidLoad方法中加入textField為你自定義輸入框的名稱

2.[textField?addTarget:self?action:@selector(textFieldDidChange:)?forControlEvents:UIControlEventEditingChanged];

3....

4.//第二步,實現(xiàn)回調(diào)函數(shù)

5.-?(void)?textFieldDidChange:(id)?sender?{

6.UITextField?*_field?=?(UITextField?*)sender;

7.NSLog(@"%@",[_field?text]);

8.}

28.UITextField實例三:

UITextField控件處理鍵盤彈出時遮住輸入框的問題

打開鍵盤卷動文本字段

默認情況下打開鍵盤會遮住下面的view妻率,帶來一點點困擾,不過這不是什么大問題板祝,我們使用點小小的手段就可以解決宫静。

首先我們要知道鍵盤的高度是固定不變的,不過在IOS 5.0 以后鍵盤的高度貌似不是216了券时,不過不要緊孤里,我們調(diào)整調(diào)整就是了:

iPhone

ipad

豎屏(portrait)

216

264

橫屏(landScape)

140

352

我們采取的方法就是在textField(有可能是其他控件)接收到彈出鍵盤事件時把self.view整體上移216px了(我們就以iPhone豎屏為例了)。

首先我們要設(shè)置textField的代理橘洞,我們就設(shè)為當前控制器了捌袜。

ios代碼

1.textField,delegate=self;

然后我們在當前控制器實現(xiàn)下面兩個委托方法:

ios代碼

1.-?(void)textFieldDidBeginEditing:(UITextField?*)textField

2.{?//當點觸textField內(nèi)部,開始編輯都會調(diào)用這個方法炸枣。textField將成為first?responder

3.NSTimeInterval?animationDuration?=?0.30f;

4.CGRect?frame?=?self.view.frame;

5.frame.origin.y?-=216;

6.frame.size.height?+=216;

7.self.view.frame?=?frame;

8.[UIView?beginAnimations:@"ResizeView"?context:nil];

9.[UIView?setAnimationDuration:animationDuration];

10.self.view.frame?=?frame;

11.[UIView?commitAnimations];

12.}

ios代碼

1.-?(BOOL)textFieldShouldReturn:(UITextField?*)textField

2.{//當用戶按下ruturn虏等,把焦點從textField移開那么鍵盤就會消失了

3.NSTimeInterval?animationDuration?=?0.30f;

4.CGRect?frame?=?self.view.frame;

5.frame.origin.y?+=216;

6.frame.size.?height?-=216;

7.self.view.frame?=?frame;

8.//self.view移回原位置

9.[UIView?beginAnimations:@"ResizeView"?context:nil];

10.[UIView?setAnimationDuration:animationDuration];

11.self.view.frame?=?frame;

12.[UIView?commitAnimations];

13.[textField?resignFirstResponder];

14.}

二.UITableView

UITableView內(nèi)置了兩種樣式:UITableViewStylePlain,UITableViewStyleGrouped

里的方法:

tableView處理步驟

#pragma mark 1.有多少組

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

#pragma mark 2.第section組頭部控件有多高

-(CGFloat)tableView:(UITableView *)tableViewheightForHeaderInSection:(NSInteger)section

#pragma mark 3.第section組有多少行

-(NSInteger)tableView:(UITableView *)tableViewnumberOfRowsInSection:(NSInteger)section

#pragma mark 4.indexPath這行的cell有多高

- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

#pragma mark 5.indexPath這行的cell長什么樣子

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath

#pragma mark 6.第section組頭部顯示什么控件

- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView

- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

//每當有一個cell進入視野屏幕就會調(diào)用适肠,所以在這個方法內(nèi)部就需要優(yōu)化霍衫。

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{

if(cell==nil){

//在這里面做創(chuàng)建的工作。循環(huán)優(yōu)化侯养。防止刷新cell進入屏幕的時候重復的創(chuàng)建

}

}

//當調(diào)用reloadData的時候敦跌,會重新刷新調(diào)用數(shù)據(jù)源內(nèi)所有方法,其他事情都不會做呀

[selfreloadData]

//這個方法只有在一開始有多少條數(shù)據(jù)才會算多少個高度,這個方法只會調(diào)用一次逛揩,但是每次reloadData的時候也會調(diào)用

//而且會一次性算出所有cell的高度柠傍,比如有100條數(shù)據(jù),一次性調(diào)用100次

- (CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath

-(NSArray*)sectionIndexTitlesForTableView:(UITableView*)tableView//右側(cè)索引

-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath//行點擊事件

NSIndexPath*path = [self.tableViewindexPathForSelectedRow];//獲得被選中的indexPath可以得到section辩稽,row

[self.tableViewreloadRowsAtIndexPaths:[self.tableViewindexPathsForSelectedRows]withRowAnimation:UITableViewRowAnimationNone];//刷新table指定行的數(shù)據(jù)

[self.tableViewreloadData];//刷新table所有行的數(shù)據(jù)

UITableView常用屬性:

UITableView*tableView = [[UITableViewalloc]initWithFrame:CGRectMake(0,0,320,460)style:UITableViewStylePlain];//初始化表格

分隔線屬性

tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;//UITableViewCellSeparatorStyleNone;

[self.tableViewsetSeparatorStyle:UITableViewCellSeparatorStyleNone];//取消分隔線

tableView.separatorColor= [UIColorlightGrayColor];

條目多選

tableView.allowsMultipleSelection=YES;

//設(shè)置標題行高

[_tableViewsetSectionHeaderHeight:kHeaderHeight];

[_tableViewsetSectionFooterHeight:0];

//設(shè)置表格行高

[_tableViewsetRowHeight:50];

//設(shè)置背景色

self.tableView.backgroundView優(yōu)先級高惧笛,如果要設(shè)置backgroundColor的時候要先把view設(shè)置為nil

self.tableView.backgroundColor

//在tableView的頭部或者尾部添加view,footerView寬度是不用設(shè)置的

xxxView.bounds = CGRectMake(0,0,0,height);

self.tableView.tableFooterView=xxxView;

self.tableView.tableHeaderView=xxxView;

UIButton*bt = (UIButton*)[self.contentViewviewWithTag:i+100];

增加tableview滾動區(qū)域

self.tableView.contentInset=UIEdgeInsetsMake(0,0, xx,0);

UITableViewCell

//創(chuàng)建UITableViewCell

UITableViewCell*cell = [[UITableViewCellalloc]

initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:nil];

[cell.textLabelsetBackgroundColor:[UIColorclearColor]];//清空標簽背景顏色

cell.backgroundView=xx;//設(shè)置背景圖片

cell.backgroundVColor=xx;

cell.selectedBackgroundView= selectedBgView; //設(shè)置選中時的背景顏色

cell.accessoryView = xxxView;//設(shè)置右邊視圖

[cellsetAccessoryType:UITableViewCellAccessoryNone]; //設(shè)置右側(cè)箭頭

[selfsetSelectionStyle:UITableViewCellSelectionStyleNone];//選中樣式

cell.selectionStyle=UITableViewCellSelectionStyleBlue;

//設(shè)置cell的高度

- (CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath

contentView下默認有3個子視圖,其中的2個是UILabel搂誉,通過textLabel和detailTextLabel屬性訪問徐紧,第3個是UIImageView,通過imageView屬性訪問.

UITableViewCellStyleDefault,UITableViewCellStyleValue1, UITableViewCellStyleValue2,UITableViewCellStyleSubtitle

#pragma mark -重新調(diào)整UITalbleViewCell中的控件布局

- (void)layoutSubviews{

[superlayoutSubviews];

}

cell 里面還有一個contentView

UITableViewCell表格優(yōu)化

UITableViewCell對象的重用原理:

重用原理:當滾動列表時炭懊,部分UITableViewCell會移出窗口,UITableView會將窗口外的UITableViewCell放入一個對象池中拂檩,等待重用侮腹。當UITableView要求dataSource返回UITableViewCell時,dataSource會先查看這個對象池稻励,如果池中有未使用的UITableViewCell父阻,dataSource會用新的數(shù)據(jù)配置這個UITableViewCell愈涩,然后返回給UITableView,重新顯示到窗口中加矛,從而避免創(chuàng)建新對象

還有一個非常重要的問題:有時候需要自定義UITableViewCell(用一個子類繼承UITableViewCell)履婉,而且每一行用的不一定是同一種UITableViewCell(如短信聊天布局),所以一個UITableView可能擁有不同類型的UITableViewCell斟览,對象池中也會有很多不同類型的UITableViewCell毁腿,時可能會得到錯誤類型的UITableViewCell那么UITableView在重用UITableViewCell。解決方案:UITableViewCell有個NSString *reuseIdentifier屬性苛茂,可以在初始化UITableViewCell的時候傳入一個特定的字符串標識來設(shè)置reuseIdentifier(一般用UITableViewCell的類名)已烤。當UITableView要求dataSource返回UITableViewCell時,先通過一個字符串標識到對象池中查找對應(yīng)類型的UITableViewCell對象妓羊,如果有胯究,就重用,如果沒有躁绸,就傳入這個字符串標識來初始化一個UITableViewCell對象

/**

單元格優(yōu)化

1.標示符統(tǒng)一裕循,使用static的目的可以保證表格標示符永遠只有一個

2.首先在緩沖池中找名為"myCell"的單元格對象

3.如果沒有找到,實例化一個新的cell

**/

- (UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{

staticNSString*cellIdentifier =@"myCell";

UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:cellIdentifier];

//使用這種方法不用判斷下面的cell

UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier:cellIdentifierforIndexPath:indexPath];

if(cell ==nil) {

cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIdentifier];

}

returncell;

}

表格的編輯模式

刪除净刮、插入

- (void)setEditing:(BOOL)editing animated:(BOOL)animated;開啟表格編輯狀態(tài)

- (UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath{

返回表格編輯編輯樣式费韭。不實現(xiàn)默認都是刪除

return editingStyle : UITableViewCellEditingStyleDelete,UITableViewCellEditingStyleInsert

}

- (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyleforRowAtIndexPath:(NSIndexPath*)indexPath{

//根據(jù)editingStyle處理是刪除還是添加操作

完成刪除、插入操作刷新表格

- (void)insertRowsAtIndexPaths:(NSArray *)indexPathswithRowAnimation:(UITableViewRowAnimation)animation;

-(void)deleteRowsAtIndexPaths:(NSArray *)indexPathswithRowAnimation:(UITableViewRowAnimation)animation;

}

移動

- (void)tableView:(UITableView*)tableView moveRowAtIndexPath:(NSIndexPath*)sourceIndexPathtoIndexPath:(NSIndexPath*)destinationIndexPath

sourceIndexPath移動的行

destinationIndexPath目標的行

自定義表格行UITableViewCell

storyboard方式創(chuàng)建:

直接拖到UITableView里面設(shè)置UITableViewCell

注意:

1.通過XIB或者Storyboard自定義單元格時庭瑰,在xib和Storyboard里面需要指定單元格的可重用標示符Identifier

2.注意表格的優(yōu)化中的差別

在Storyboard中兩者等效

xxCell*cell =[tableViewdequeueReusableCellWithIdentifier:CellIdentifier];

xxCell*cell1 = [tableViewdequeueReusableCellWithIdentifier:CellIdentifierforIndexPath:indexPath];

在xib文件中有差別:

第一種情況星持,只能在iOS6以上使用,如果在viewDidLoad注冊了nib文件弹灭,并且指定了“單元格”的可重用標示符督暂,那么

dequeueReusableCellWithIdentifier:

dequeueReusableCellWithIdentifier:forIndexPath:

方法是等效的。如果在viewDidLoad中注冊了nib文件穷吮,表格緩沖池中的管理逻翁,有系統(tǒng)接管!

第二種情況捡鱼,是在iOS 4以上均可以使用八回,如果沒有在viewDidLoad注冊nib文件,那么驾诈,只能使用

dequeueReusableCellWithIdentifier:并且需要判斷cell沒有被實例化缠诅,并做相應(yīng)的處理

在代碼創(chuàng)建中差別:

用代碼創(chuàng)建cell中的處理和nib一樣,注冊了cell就有系統(tǒng)接管并且可以用帶forIndexPath的方法乍迄,沒有注冊就要自己去實例化cell管引,不能用帶forIndexPath的方法

[tableViewregisterClass:XxxCellclass]forCellReuseIdentifier:@"xxCell"];

xib方式創(chuàng)建:

//注冊Identifier

- (void)viewDidLoad{

[superviewDidLoad];

/**

注意:以下幾句注冊XIB的代碼,一定要在viewDidLoad中闯两!

注冊XIB文件,獲得根視圖褥伴,并且轉(zhuǎn)換成TableView,為tableView注冊xib

Identifier名要在xib文件中定義谅将,并且保持一致

**/

UINib*nib = [UINibnibWithNibName:@"BookCell"bundle:[NSBundlemainBundle]];

UITableView*tableView = (UITableView*)self.view;

[tableViewregisterNib:nibforCellReuseIdentifier:@"bookCell"];

}

//沒有注冊Identifier只能使用下面方法

staticNSString*CellIdentifier=@"bookCell";

BookCell*cell =[tableViewdequeueReusableCellWithIdentifier:CellIdentifier];

if(cell ==nil) {

cell = [[BookCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier];

NSBundle*bundle = [NSBundlemainBundle];

NSArray*array = [bundleloadNibNamed:@"BookCell"owner:niloptions:nil];

cell = [arraylastObject];

}

代碼方式創(chuàng)建:

1.?????????????????建立UITableViewCell的類,繼承UITableViewCell

2.?????????????????往cell里面加入view的時候注意點:

//新建的組件放入contentView中

[self.contentViewaddSubview:xxView];

//設(shè)置圖片拉伸屬性stretch

UIImage*normalImage = [UIImageimageNamed:@"xx.png"];

normalImage= [normalImagestretchableImageWithLeftCapWidth:

normalImage.size.width/2topCapHeight:normalImage.size.height/2];

//在tableView里面viewDiDLoad里面要注冊cell類

[tableViewregisterClass:XxxCellclass]forCellReuseIdentifier:@"xxCell"];

自定義表格中Header

//自定義表格在這個方法中定義

-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section

-(NSString*)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section

三.UISwitch屬性

1. onTintColor

處于on時switch?的顏色

switchImage.onTintColor?=?[UIColor?grayColor];

2.tintColor

處于off時switch?的顏色

switchImage.tintColor?=?[UIColor?greenColor];

3.onImage

設(shè)置on?的圖標

switchImage.onImage?=?[UIImage?imageNamed:@"1.png"];

4. offImage

設(shè)置off的圖標

switchImage.offImage?=?[UIImage?imageNamed:@"4.png"];

5. on

設(shè)置switch的開關(guān)

swithImage.on = YES;

6.thumbTintColor

設(shè)置拇指顏色

swithImage.thumbTintColor = [UIColorredColor];

效果:

7.增加事件響應(yīng)機制

監(jiān)聽的是這個事件:UIControlEventValueChanged重慢,值改變事件

[switchImage?addTarget:self?action:@selector(switchOn)?forControlEvents:UIControlEventValueChanged];

四.UISlide屬性

1.?????minimumValue??: 當值可以改變時饥臂,滑塊可以滑動到最小位置的值,默認為0.0

_slider.minimumValue =10.0;

2.?????maximumValue?: 當值可以改變時似踱,滑塊可以滑動到最大位置的值隅熙,默認為1.0

_slider.maximumValue=100.0;

3.?????continuous: 如果設(shè)置YES,在拖動滑塊的任何時候屯援,滑塊的值都會改變猛们。默認設(shè)置為YES

[_slidersetContinuous:NO];//在滑塊滑動結(jié)束時才獲取滑塊的值

4.?????minimumValueImage?: 滑塊條最小值處設(shè)置的圖片,默認為nil

_slider.minimumValueImage= [UIImageimageNamed:@"003.png"];

5.?????maximumValueImage狞洋,滑塊條最大值處設(shè)置的圖片,默認為nil

_slider.maximumValueImage= [UIImageimageNamed:@"002.png"];

6.minimumTrackTintColor?:?小于滑塊當前值滑塊條的顏色弯淘,默認為藍色

_slider.minimumTrackTintColor= [UIColorredColor];

7.maximumTrackTintColor:?大于滑塊當前值滑塊條的顏色,默認為白色

_slider.maximumTrackTintColor= [UIColorgreenColor];

8.thumbTintColor?:?當前滑塊的顏色吉懊,默認為白色

_slider.thumbTintColor= [UIColoryellowColor];

9.currentMaximumTrackImage?:?滑塊條最大值處設(shè)置的圖片

10.currentMinimumTrackImage?:?滑塊條最小值處設(shè)置的圖片

11.currentThumbImage:?當前滑塊的圖片

五.UISegment屬性

1.segmentedControlStyle

設(shè)置segment的顯示樣式庐橙。

typedefNS_ENUM(NSInteger,UISegmentedControlStyle) {

UISegmentedControlStylePlain,// largeplain系統(tǒng)默認平板樣式

segmentedControl.segmentedControlStyle =UISegmentedControlStylePlain;

UISegmentedControlStyleBordered,// largebordered黑邊樣式

segmentedControl.segmentedControlStyle =UISegmentedControlStyleBordered;

UISegmentedControlStyleBar,// small button/nav bar style. Tintable條狀樣式

segmentedControl.segmentedControlStyle=UISegmentedControlStyleBar;

UISegmentedControlStyleBezeled,// DEPRECATED. Do not use this style.這個類型不要使用,用了會報錯喔。

};

2.tintColor 漸變顏色

Default tintColor is nil. Only used ifstyle is UISegmentedControlStyleBar

默認空借嗽,只有使用UISegmentedControlStyleBar态鳖,才能設(shè)置漸變顏色。

segmentedControl.segmentedControlStyle=UISegmentedControlStyleBar;

segmentedControl.tintColor= [UIColorredColor];

效果:

3.momentary 設(shè)置在點擊后是否恢復原樣

默認為NO

segmentedControl.momentary=No;

點擊之后效果:

segmentedControl.momentary=YES;

點擊之后效果:

4. numberOfSegments(只讀)

獲取總選項數(shù)segmentedControl.numberOfSegments

5. selectedSegmentIndex

用來設(shè)置選中項或者返回選中項恶导。

segmentedControl.selectedSegmentIndex =2;//設(shè)置默認選擇項索引

segmentedControl.selectedSegmentIndex //獲取選中項

6.- (void)setTitle:(NSString*)title forSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setTitle:@"two"forSegmentAtIndex:1];//設(shè)置指定索引的題目

效果:

7. - (void)setImage:(UIImage *)imageforSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setImage:[UIImage imageNamed:@"lan.png"]forSegmentAtIndex:3];//設(shè)置指定索引的圖片

8.-(void)insertSegmentWithTitle:(NSString*)titleatIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControlinsertSegmentWithTitle:@"add"atIndex:3animated:NO];//在指定索引插入一個選項并設(shè)置題目

效果:

9.-(void)insertSegmentWithImage:(UIImage*)image? atIndex:(NSUInteger)segmentanimated:(BOOL)animated;

[segmentedControlinsertSegmentWithImage:[UIImageimageNamed:@"mei.png"]atIndex:2animated:NO];//在指定索引插入一個選項并設(shè)置圖片

10.- (void)removeSegmentAtIndex:(NSUInteger)segmentanimated:(BOOL)animated;

[segmentedControlremoveSegmentAtIndex:0animated:NO];//移除指定索引的選項

效果:

11. - (void)removeAllSegments;

//移除所有選項

//[segmentedControlremoveAllSegments];

12. - (void)setWidth:(CGFloat)widthforSegmentAtIndex:(NSUInteger)segment;// set to 0.0 width to autosize. default is0.0

選項卡的寬度默認為0浆竭,此方法能夠設(shè)置選項卡寬度。

[segmentedControlsetWidth:70.0forSegmentAtIndex:2];//設(shè)置指定索引選項的寬度

效果:

13. - (void)setContentOffset:(CGSize)offsetforSegmentAtIndex:(NSUInteger)segment;// adjustoffset of image or text inside the segment. default is (0,0)

[segmentedControlsetContentOffset:CGSizeMake(10,0)forSegmentAtIndex:1];

設(shè)置選項卡內(nèi)部文字或者圖片與默認位置的偏移量惨寿,默認位置在選項卡的中心邦泄。

效果:

14. - (void)setEnabled:(BOOL)enabledforSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setEnabled:NO forSegmentAtIndex:4];//設(shè)置指定索引選項不可選

15.增加事件響應(yīng)機制

監(jiān)聽的是這個事件:UIControlEventValueChanged,值改變事件

[segmentedControladdTarget:selfaction:@selector(itemClick)forControlEvents:UIControlEventValueChanged];

六.UIScrollView

1.?????contentOffset

默認CGPointZero裂垦,用來設(shè)置scrollView的滾動偏移量顺囊。

//設(shè)置scrollView的滾動偏移量

scrollView.contentOffset=CGPointMake(0,200);

2.?????contentSize

默認CGSizeZero,用來設(shè)置scrollView的滾動范圍蕉拢。

//設(shè)置scrollView的滾動范圍

scrollView.contentSize=CGSizeMake(self.view.bounds.size.width,self.view.bounds.size.height*2);

3.?????contentInset

默認UIEdgeInsetsZero特碳,用來設(shè)置scrollView的額外滾動區(qū)域。

//設(shè)置scrollView的額外頂部滾動區(qū)域:(UIEdgeInsetsMake是逆時針設(shè)置晕换,上左下右)

scrollView.contentInset=UIEdgeInsetsMake(100,0,0,0);

4. bounces

默認為YES午乓,用來設(shè)置scrollView的彈簧效果

//取消scrollView的彈簧效果

scrollView.bounces=NO;

5.pagingEnabled

默認為NO,用來設(shè)置scrollView是否開啟分頁.

//開啟分頁

scrollView.pagingEnabled=YES;

6.scrollEnabled

默認為YES届巩,用來設(shè)置scrollView是否允許滾動.

// scrollView禁止?jié)L動

scrollView.scrollEnabled=NO;

7.showsHorizontalScrollIndicator

默認為YES硅瞧,用來設(shè)置scrollView是否顯示水平滾動條.

//隱藏水平滾動條

scrollView.showsHorizontalScrollIndicator=NO;

8.showsVerticalScrollIndicator

默認為YES,用來設(shè)置scrollView是否顯示垂直滾動條.

//隱藏垂直滾動條

scrollView.showsVerticalScrollIndicator=NO;

9.minimumZoomScale

默認1.0恕汇,用來設(shè)置scrollView最少縮小比例.

//設(shè)置scrollView允許子視圖的最大放大比例

scrollView.maximumZoomScale=2;

10.maximumZoomScale

默認1.0腕唧,用來設(shè)置scrollView最大放大比例.

//設(shè)置scrollView允許子視圖的最小縮放比例

scrollView.minimumZoomScale=0.8;

11. delegate

類要遵守UIScrollViewDelegate協(xié)議

scrollView.delegate = self; 聲明scrollView的代理是我,?這個方法在UIScrollViewDelegate里所以我們要遵守UIScrollViewDelegate這個協(xié)議

11.1當scrollView的偏移量一改變就會調(diào)用這個方法瘾英,即滾動scrollView就會調(diào)用枣接。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

11.2當scrollView縮放時,就會調(diào)用這個方法

- (void)scrollViewDidZoom:(UIScrollView *)scrollViewNS_AVAILABLE_IOS(3_2);

11.3 即將拖拽的時候調(diào)用.

- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView;

11.4 即將停止拖拽的時候調(diào)用

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollViewwithVelocity:(CGPoint)velocity targetContentOffset:(inoutCGPoint *)targetContentOffsetNS_AVAILABLE_IOS(5_0);

11.5 停止拖拽的時候調(diào)用缺谴。

- (void)scrollViewDidEndDragging:(UIScrollView*)scrollViewwillDecelerate:(BOOL)decelerate;

11.6 即將減速完成的時候調(diào)用但惶。

- (void)scrollViewWillBeginDecelerating:(UIScrollView*)scrollView;

11.7 減速完成的時候調(diào)用

- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView;

11.8 返回需要縮放哪個視圖,這個視圖必須是scrollView里的子視圖湿蛔。

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;

// 列如:

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView

{

returnscrollView.subviews[0];

}

11.9 scrollView即將開始縮放

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollViewwithView:(UIView *)viewNS_AVAILABLE_IOS(3_2);

11.10 scrollView完成縮放

- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(float)scale;

11.11沒有開啟分頁的時候膀曾,代理方法調(diào)用順序:

scrollViewWillBeginDragging –> scrollViewDidScroll-> scrollViewWillEndDragging -> scrollViewDidEndDragging

11.12 開啟分頁的時候,代理方法調(diào)用順序

scrollViewWillBeginDragging -> scrollViewDidScroll-> scrollViewDidEndDragging ->scrollViewWillBeginDecelerating ->scrollViewDidScroll-> scrollViewDidEndDecelerating

12. directionalLockEnabled

指定控件是否只能在一個方向上滾動

13. decelerationRate

改變scrollerView的減速點位置

14. tracking

監(jiān)控當前目標是否正在被跟蹤

15. dragging

改變scrollerView的減速點位置

16. delaysContentTouches

控制視圖是否延時調(diào)用開始滾動的方法

17. canCancelContentTouches

控制控件是否接觸取消touch的事件

18. indicatorStyle

設(shè)定滾動條的樣式

19. decelerating

監(jiān)控當前目標是否正在減速

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阳啥,一起剝皮案震驚了整個濱河市添谊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌察迟,老刑警劉巖斩狱,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扎瓶,居然都是意外死亡所踊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門概荷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辨图,“玉大人,你說我怎么就攤上這事咒劲∶颓Γ” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵雷厂,是天一觀的道長惋增。 經(jīng)常有香客問我,道長改鲫,這世上最難降的妖魔是什么诈皿? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮像棘,結(jié)果婚禮上稽亏,老公的妹妹穿的比我還像新娘。我一直安慰自己缕题,他們只是感情好截歉,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烟零,像睡著了一般瘪松。 火紅的嫁衣襯著肌膚如雪咸作。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天宵睦,我揣著相機與錄音记罚,去河邊找鬼。 笑死壳嚎,一個胖子當著我的面吹牛桐智,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烟馅,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼说庭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了郑趁?” 一聲冷哼從身側(cè)響起刊驴,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎穿撮,沒想到半個月后缺脉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡悦穿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年攻礼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栗柒。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡礁扮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞬沦,到底是詐尸還是另有隱情太伊,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布逛钻,位于F島的核電站僚焦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏曙痘。R本人自食惡果不足惜芳悲,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望边坤。 院中可真熱鬧名扛,春花似錦、人聲如沸茧痒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至弄企,卻和暖如春超燃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桩蓉。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工淋纲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劳闹,地道東北人院究。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像本涕,于是被迫代替她去往敵國和親业汰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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