//在遇到有輸入的情況下。由於現在鍵盤的高度是動態變化的。中文輸入與英文輸入時高度不同。所以輸入框的位置也要做出相應的變化
#pragma mark - keyboardhight
[self registerforkeyboardnotifications];
[[nsnotificationcenter defaultcenter] removeobserver:self];
- (void)registerforkeyboardnotifications
//使用nsnotificationcenter 鍵盤出現時
[[nsnotificationcenter defaultcenter] addobserver:self
selector:@selector(keyboardwasshown:)
name:uikeyboarddidshownotification object:nil];
//使用nsnotificationcenter 鍵盤隱藏時
[[nsnotificationcenter defaultcenter] addobserver:self
selector:@selector(keyboardwillbehidden:)
name:uikeyboardwillhidenotification object:nil];
//實現當鍵盤出現的時候計算鍵盤的高度大小。用於輸入框顯示位置
- (void)keyboardwasshown:(nsnotification*)anotification
nsdictionary* info = [anotification userinfo];
//kbsize即為鍵盤尺寸 (有width, height)
cgsize kbsize = [[info objectforkey:uikeyboardframeenduserinfokey] cgrectvalue].size;//得到鍵盤的高度
nslog(@"hight_hitht:%f",kbsize.height);
if(kbsize.height == 216)
keyboardhight = 0;
else
keyboardhight = 36; //252 - 216 系統鍵盤的兩個不同高度
//輸入框位置動畫載入
[self begainmoveupanimation:keyboardhight];
//當鍵盤隱藏的時候
- (void)keyboardwillbehidden:(nsnotification*)anotification
//do something
//(textview) 當鍵盤開始輸入前。時行計算與動畫載入
-(void)textviewdidbeginediting:(uitextview *)textview
nslog(@"gegin animation");
sendmsgtextview =textview;
resultcommunitytableview.frame = cgrectmake(0, 36, 320, 150);
//動畫載入
[self begainmoveupanimation:0.0 ];
//關閉鍵盤(textview) 換行時。隱藏鍵盤
-(bool)textview:(uitextview *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text
resultcommunitytableview.frame = cgrectmake(0, 36, 320, 376);
if ([text isequaltostring:@"\n"]) {
[textview resignfirstresponder];
return no;
return yes;
//輸入結束時呼叫動畫(把按鍵。背景。輸入框都移下去)
-(void)textviewdidendediting:(uitextview *)textview
nslog(@"tabtabtab");
[self endeditanimation];
//釋放
[[nsnotificationcenter defaultcenter] removeobserver:self name:uikeyboardwillshownotification object:nil];
[[nsnotificationcenter defaultcenter] removeobserver:self name:uikeyboardwillhidenotification object:nil];
//判斷當前輸入法
-(void)textviewdidchangeselection:(uitextview *)textview
nslog(@"wewe:%@",[[uitextinputmode currentinputmode] primarylanguage]);
if ([[uitextinputmode currentinputmode] primarylanguage] == @"en-us") {
nslog(@"en-us");
else
nslog(@"zh-hans");
動態獲取View的高度
設定動態復view的高度寬度有以下兩制種方法 1.getheight 方法這個方法必須要在view呼叫了onlayout方法後才能獲得,為了監聽onlayout方法,可以獲得viewtree觀察者上的 來實現,具體 為 viewtreeobserver viewtreeobserver bottom...
iPhone 動態獲取UILabel的高度和寬度
在使用uilabel存放字串時,經常需要獲取label的長寬資料,本文列出了部分常用的計算方法。1.獲取寬度,獲取字串不折行單行顯示時所需要的長度 cgsize titlesize astring sizewithfont fontconstrainedtosize cgsizemake maxfl...
iPhone 動態獲取UILabel的高度和寬度
在使用uilabel存放字串時,經常需要獲取label的長寬資料,本文列出了部分常用的計算方法。1.獲取寬度,獲取字串不折行單行顯示時所需要的長度 cgsize titlesize astring sizewithfont font constrainedtosize cgsizemake maxf...