- 無代碼不博客.實現(xiàn)太簡單不做過多介紹,邊看代碼變解釋.
- 先看效果圖片

02.gif
#import "ViewController.h"
#define kScreenW [UIScreen mainScreen].bounds.size.width
#define kScreenH [UIScreen mainScreen].bounds.size.height
#define kScreenB [UIScreen mainScreen].bounds
@interface ViewController ()<UITextFieldDelegate>
//輸入框
@property (weak, nonatomic) IBOutlet UITextField *TXTInput;
//判斷是否買了會員
@property (nonatomic, assign) BOOL isVip;
@end
- 設(shè)置TXTInput的代理,來監(jiān)聽鍵盤上return建是否被點擊.
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/** 設(shè)置代理,監(jiān)聽鍵盤return鍵 */
self.TXTInput.delegate = self;
}
- 下面是點擊return建調(diào)用的方法
/** 鍵盤回車return鍵調(diào)用的方法 */
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
UILabel * lbl = [[UILabel alloc] init];
[self.view addSubview:lbl];
/** 判斷是否是Vip */
//根據(jù)是否是Vip來設(shè)置label的背景色
if (self.isVip) {
lbl.backgroundColor = [UIColor redColor];
} else {
lbl.backgroundColor = [UIColor whiteColor];
}
lbl.text = self.TXTInput.text;
/** 每次點擊return鍵后清空輸入框 */
self.TXTInput.text = nil;
/** 設(shè)置lbl自動適應(yīng)文字大小 */
[lbl sizeToFit];
CGFloat w = self.lbl.bounds.size.width;
CGFloat h = self.lbl.bounds.size.height;
CGFloat x = kScreenW;
//隨機產(chǎn)生y的值,來隨機產(chǎn)生lbl的高度
CGFloat y = arc4random_uniform(kScreenH-self.lbl.bounds.size.height);
lbl.frame = CGRectMake(x, y, w, h);
/** 動畫執(zhí)行 */
[UIView animateWithDuration:5.0 animations:^{
lbl.frame = CGRectMake(-self.lbl.bounds.size.width, y, w, h);
}];
return YES;
}
- 點擊買會員按鈕,如果不是會員點擊后,變會員同時改變文字.
- (IBAction)clickVipBtn:(UIButton *)sender {
if (self.isVip) {
self.isVip = NO;
[sender setTitle:@"買會員" forState:UIControlStateNormal];
/** 存儲偏好設(shè)置或者服務(wù)器 */
} else {
[sender setTitle:@"去會員" forState:UIControlStateNormal];
self.isVip = YES;
/** 存儲偏好設(shè)置或者服務(wù)器 */
}
}
思路:通過產(chǎn)生隨機數(shù)產(chǎn)生lbl的不同高度,動畫實現(xiàn)通過uiview的動畫.