1 #import "AppDelegate.h"
  2 #import "ViewController.h"
  3 
  4 @interface AppDelegate ()
  5 
  6 @end
  7 
  8 @implementation AppDelegate
  9 
 10 //程序启动完成调用
 11 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 12     //系统创建window
 13     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 14     //在window上创建视图控制器
 15     self.window.rootViewController = [[ViewController alloc] init];
 16     //系统设置创建window的背景颜色
 17     self.window.backgroundColor = [UIColor blackColor];
 18     //设置为主窗口并显示出来
 19     [self.window makeKeyAndVisible];
 20     
 21     return YES;
 22 }
 23 
 24 
 25 
 26 #ifndef GlobalDefine_h
 27 #define GlobalDefine_h
 28 
 29 #define SCREENWIDTH [[UIScreen mainScreen] bounds].size.width
 30 #define SCREENHEIGHT [[UIScreen mainScreen] bounds].size.height
 31 
 32 #endif /* GlobalDefine_h */
 33 
 34 
 35 
 36 #import <UIKit/UIKit.h>
 37 
 38 @interface ViewController : UIViewController <UITextFieldDelegate>
 39 
 40 @property (nonatomic, strong) UIImageView *imgViewHomePage;
 41 @property (nonatomic, strong) UIImageView *imgViewLine1;
 42 @property (nonatomic, strong) UIImageView *imgViewLine2;
 43 @property (nonatomic, strong) UIImageView *imgViewLogin;
 44 @property (nonatomic, strong) UIImageView *imgViewCancel;
 45 
 46 @property (nonatomic, strong) UITextField *textFieldUserName;
 47 @property (nonatomic, strong) UITextField *textFieldPassword;
 48 
 49 @property (nonatomic, strong) UIButton *buttonLogin;
 50 @property (nonatomic, strong) UIButton *buttonEmpty;
 51 
 52 @end
 53 
 54 
 55 
 56 #import "ViewController.h"
 57 #import "SecondViewController.h"
 58 
 59 @interface ViewController ()
 60 
 61 @end
 62 
 63 @implementation ViewController
 64 
 65 - (void)viewDidLoad {
 66     [super viewDidLoad];
 67     //设置主页面
 68     _imgViewHomePage = [[UIImageView alloc] initWithFrame:CGRectMake(89, 92, 143, 48)];
 69     _imgViewHomePage.image = [UIImage imageNamed:@"img_首页Logo"];
 70     [self.view addSubview:_imgViewHomePage];
 71     
 72     //设置用户名线
 73     _imgViewLine1 = [[UIImageView alloc] initWithFrame:CGRectMake(45, 262, 230, 1)];
 74     _imgViewLine1.image = [UIImage imageNamed:@"img_首页输入框底线"];
 75     [self.view addSubview:_imgViewLine1];
 76     
 77     //设置密码线
 78     _imgViewLine2 = [[UIImageView alloc] initWithFrame:CGRectMake(45, 311, 230, 1)];
 79     _imgViewLine2.image = [UIImage imageNamed:@"img_首页输入框底线"];
 80     [self.view addSubview:_imgViewLine2];
 81     
 82     //设置登录imageView
 83     _imgViewLogin = [[UIImageView alloc] initWithFrame:CGRectMake(45, 323, 230, 47)];
 84     _imgViewLogin.image = [UIImage imageNamed:@"btn_登录_n"];
 85     [self.view addSubview:_imgViewLogin];
 86     
 87     //设置取消imageView
 88     _imgViewCancel = [[UIImageView alloc] initWithFrame:CGRectMake(252, 240, 22, 22)];
 89     _imgViewCancel.image = [UIImage imageNamed:@"btn_首页用户名取消"];
 90     [self.view addSubview:_imgViewCancel];
 91     
 92     //设置用户名TextField
 93     _textFieldUserName = [[UITextField alloc] initWithFrame:CGRectMake(45, 232, 230, 30)];
 94     //占位符
 95 //    _textFieldUserName.placeholder = @"用户名";
 96     //设置占位符上字体的颜色!!!
 97     _textFieldUserName.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"用户名" attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor], NSForegroundColorAttributeName,nil]];//设置占位符上字体的颜色
 98     _textFieldUserName.textColor = [UIColor whiteColor];
 99     _textFieldUserName.delegate = self;//调用协议
100     [self.view addSubview:_textFieldUserName];
101     
102     //设置密码TextField
103     _textFieldPassword = [[UITextField alloc] initWithFrame:CGRectMake(45, 281, 230, 30)];
104     NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor], NSForegroundColorAttributeName,nil];
105     _textFieldPassword.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"密码" attributes:dic];
106     _textFieldPassword.textColor = [UIColor whiteColor];
107     //使用密文
108     _textFieldPassword.secureTextEntry = YES;
109     _textFieldPassword.delegate = self;
110     [self.view addSubview:_textFieldPassword];
111     
112     //设置登录按钮
113     _buttonLogin = [UIButton buttonWithType:UIButtonTypeCustom];
114     _buttonLogin.frame = CGRectMake(45, 323, 230, 47);
115     [self.view addSubview:_buttonLogin];
116     //登录跳转
117     [_buttonLogin addTarget:self action:@selector(next:) forControlEvents:UIControlEventTouchUpInside];
118     
119     //设置清空按钮
120     _buttonEmpty = [UIButton buttonWithType:UIButtonTypeCustom];
121     _buttonEmpty.frame = CGRectMake(252, 240, 22, 22);
122     [self.view addSubview:_buttonEmpty];
123     //清空用户名和密码:跳转
124     [_buttonEmpty addTarget:self action:@selector(empty:) forControlEvents:UIControlEventTouchUpInside];
125     
126 }
127 
128 //清空用户名的方法
129 -(void)empty:(id)sender
130 {
131     [_textFieldUserName setText:@""];
132     [_textFieldPassword setText:@""];
133     [_textFieldUserName isFirstResponder];
134 }
135 
136 //登录跳转方法
137 - (void)next:(id)sender
138 {
139     NSString *strUserName = @"Huashan";
140     NSString *strPassWord = @"123456";
141     if ([_textFieldUserName.text isEqualToString:strUserName] && [_textFieldPassword.text isEqualToString:strPassWord])
142     {
143         //跳到下一个界面
144         SecondViewController *tempVC = [[SecondViewController alloc] init];
145         [self presentViewController:tempVC animated:YES completion:nil];
146     }
147     else
148     {
149         //跳出输入错误提示框
150         UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"用户名或密码错误,请重新输入" preferredStyle:UIAlertControllerStyleAlert];
151         UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
152         [alertController addAction:okAction];
153         [self presentViewController:alertController animated:YES completion:nil];
154     }
155 }
156 
157 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
158 {
159     [_textFieldUserName resignFirstResponder];
160     [_textFieldPassword resignFirstResponder];
161 }
162 
163 //点击文本框,界面随键盘出现,整体往上移动(关键词:UIView animate)
164 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
165 {
166     if (self.view.frame.origin.y == 0)
167     {
168         [UIView animateWithDuration:0.3 animations:^{
169             self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - 100, self.view.frame.size.width, self.view.frame.size.height);
170         }];
171     }
172     return YES;
173 }
174 //随着键盘收缩,界面随着往下移动
175 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField
176 {
177 
178     if (self.view.frame.origin.y == -100)
179     {
180         [UIView animateWithDuration:0.3 animations:^{
181             self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + 100, self.view.frame.size.width, self.view.frame.size.height);
182         }];
183     }
184     return YES;
185 }
186 
187 
188 - (BOOL)textFieldShouldReturn:(UITextField *)textField//按下return键盘收缩
189 {
190     [textField resignFirstResponder];
191     return YES;
192 }
193 
194 - (void)didReceiveMemoryWarning {
195     [super didReceiveMemoryWarning];
196     // Dispose of any resources that can be recreated.
197 }
198 
199 @end
200 
201 
202 
203 #import <UIKit/UIKit.h>
204 
205 @interface SecondViewController : UIViewController
206 
207 @property (nonatomic, strong) UIScrollView *scrollView;
208 @property (nonatomic, strong) UIImageView *imgView;
209 @property (nonatomic, strong) UILabel *sortLabel;
210 @property (nonatomic, strong) UIButton *backButton;
211 
212 @end
213 
214 
215 
216 #import "SecondViewController.h"
217 #import "GlobalDefine.h"
218 
219 @interface SecondViewController ()
220 
221 @end
222 
223 @implementation SecondViewController
224 
225 - (void)viewDidLoad
226 {
227     [super viewDidLoad];
228     //设置滚动视图
229     _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT)];
230     //滚动视图内容的宽高
231     _scrollView.contentSize = CGSizeMake(SCREENWIDTH, SCREENHEIGHT * 4);
232     //启用分页
233     _scrollView.pagingEnabled = YES;
234     //禁止弹动
235     _scrollView.bounces = NO;
236     [self.view addSubview:_scrollView];
237     
238     //添加4张图片,顺序上下
239     for (int i = 1; i < 5; ++i)
240     {
241         _sortLabel = [[UILabel alloc] initWithFrame:CGRectMake(SCREENWIDTH / 2 - 100, SCREENHEIGHT - 50, 200, 30)];
242         _sortLabel.textAlignment = NSTextAlignmentCenter;
243         _sortLabel.textColor = [UIColor whiteColor];
244         _sortLabel.font = [UIFont systemFontOfSize:15];
245         
246         _imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, SCREENHEIGHT * (i - 1), SCREENWIDTH, SCREENHEIGHT)];
247         _imgView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i]];
248         _sortLabel.text = [NSString stringWithFormat:@"这是第%d张图片", i];
249         [_imgView addSubview:_sortLabel];
250         [_scrollView addSubview:_imgView];
251     }
252     
253     //退出(返回)
254     _backButton = [UIButton buttonWithType:UIButtonTypeCustom];
255     _backButton.frame = CGRectMake(30, 50, 60, 60);
256     [_backButton setTitle:@"退出" forState:UIControlStateNormal];
257     [_backButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
258 //    _backButton.tintColor = [UIColor whiteColor];
259     _backButton.titleLabel.font = [UIFont systemFontOfSize:14];
260     [self.view addSubview:_backButton];
261     
262     //退出跳转
263     [_backButton addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
264     
265 }
266 
267 - (void)back:(id)sender
268 {
269     [self dismissViewControllerAnimated:YES completion:nil];
270 }
271 
272 - (void)didReceiveMemoryWarning {
273     [super didReceiveMemoryWarning];
274     // Dispose of any resources that can be recreated.
275 }
276 
277 /*
278 #pragma mark - Navigation
279 
280 // In a storyboard-based application, you will often want to do a little preparation before navigation
281 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
282     // Get the new view controller using [segue destinationViewController].
283     // Pass the selected object to the new view controller.
284 }
285 */
286 
287 @end