iOS键盘自适应弹出效果

2025-05-29 0 99

一、ios键盘自适应弹出效果图

iOS键盘自适应弹出效果

二、工程图

iOS键盘自适应弹出效果

三、代码

viewcontroller.h

?

1

2

3

4

5

6

7
#import <uikit/uikit.h>

@interface viewcontroller : uiviewcontroller

<uitextfielddelegate>

@end

viewcontroller.m

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72
#import "viewcontroller.h"

@interface viewcontroller ()

@end

@implementation viewcontroller

- (void)viewdidload {

[super viewdidload];

// do any additional setup after loading the view, typically from a nib.

uitextfield *field=[[uitextfield alloc]initwithframe:cgrectmake(100, 300, 50, 50)];

field.backgroundcolor=[uicolor redcolor];

field.delegate=self;

[self.view addsubview:field];

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(keyboardwillshow:) name:uikeyboardwillshownotification object:nil];

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(keyboardwillhide:) name:uikeyboardwillhidenotification object:nil];

}

#pragma -mark -keyboard notificatin

- (void)keyboardwillshow:(nsnotification *)notification {

nsdictionary *info = [notification userinfo];

// keyboardheight 为键盘高度

cgsize keyboardsize = [[info objectforkey:uikeyboardframeenduserinfokey] cgrectvalue].size;

[self animateviewwithkeyboardheight:keyboardsize.height];

}

- (void)keyboardwillhide:(nsnotification *)notification {

[self animateviewwithkeyboardheight:0.0];

}

- (void)animateviewwithkeyboardheight:(cgfloat)keyboardheight {

nstimeinterval animationduration = 0.3f;

cgfloat height = self.view.bounds.size.height;

cgfloat width = self.view.bounds.size.width;

cgfloat topsize = 0.0;

cgfloat viewh = self.view.frame.size.height-64;

cgfloat deviceheight = [uiscreen mainscreen].bounds.size.height;

cgfloat animateh = deviceheight - viewh - keyboardheight;

if (animateh >= 0) {

topsize = 0;

cgrect torect = cgrectmake(0, topsize, width, height);

self.view.frame = torect;

} else {

topsize = animateh;

cgrect torect = cgrectmake(0, topsize, width, height);

[uiview animatewithduration:animationduration animations:^{

self.view.frame = torect;

}];

}

}

#pragma -mark -uitextfielddelegate

-(bool)textfieldshouldreturn:(uitextfield *)textfield

{

[textfield resignfirstresponder];

return yes;

}

- (void)didreceivememorywarning {

[super didreceivememorywarning];

// dispose of any resources that can be recreated.

}

@end

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 iOS键盘自适应弹出效果 https://www.kuaiidc.com/90788.html

相关文章

发表评论
暂无评论