UIWebView 加载网页

发表于 2018-09-09   |   分类于 Objectiv-C 课程

1、创建UIWebView

CGRect bouds = [[UIScreen manScreen]applicationFrame]; 
UIWebView* webView = [[UIWebView alloc]initWithFrame:bounds];

2、设置属性

webView.scalespageToFit = YES;//自动对页面进行缩放以适应屏幕 
webView.detectsPhoneNumbers = YES;//自动检测网页上的电话号码,单击可以拨打

3、显示网页视图UIWebView

[self.view addSubview:webView];

4、加载内容

NSURL* url = [NSURL URLWithString:@"http://www.baidu.com"];//创建URL 
NSURLRequest* request = [NSURLRequest requestWithURL:url];//创建NSURLRequest 
[webView loadRequest:request];//加载

也可以加载一个本地资源

NSURL* url = [NSURL fileURLWithPath:filePath];//创建URL 
NSURLRequest* request = [NSURLRequest requestWithURL:url];//创建NSURLRequest 
[webView loadRequest:request];//加载

UIWebView 还支持将一个NSString对象作为源来加载。你可以为其提供一个基础URL,来指导UIWebView对象如何跟随链接和加载远程资源

[webView loadHTMLString:myHTML baseURL:[NSURL URLWithString:@"http://baidu.com"]];

UITextView 输入框

发表于 2018-09-09   |   分类于 Objectiv-C 课程
    // 初始化输入框并设置位置和大小
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 100, [UIScreen mainScreen].bounds.size.width - 20, 180)];
    // 设置预设文本
    textView.text = @"您的意见是我前进的最大动力,谢谢!";
    // 设置文本字体
    textView.font = [UIFont fontWithName:@"Arial" size:16.5f];
    // 设置文本颜色
    textView.textColor = [UIColor colorWithRed:51/255.0f green:51/255.0f blue:51/255.0f alpha:1.0f];
    // 设置文本框背景颜色
    textView.backgroundColor = [UIColor whiteColor];

    // 设置文本对齐方式
    textView.textAlignment = NSTextAlignmentLeft;
    // 设置自动纠错方式
    textView.autocorrectionType = UITextAutocorrectionTypeNo;
    // 设置是否可以拖动
    textView.scrollEnabled = YES;
    // 设置代理
    textView.delegate = self;
    //自适应高度
    textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:textView];

issue 24:UI 基础

发表于 2018-09-09   |   分类于 Objectiv-C 课程

笔记部分

  1. UIWindow对象是所有UIView的根视图,管理和协调的应用程序的显示、分发事件给View。
  2. UIWindow类是UIView的子类,可以看作是特殊的UIView。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。UIWindow初始化在appDeleDgate里面的 didFinishLaunchingWithOptions方法。
  3. UIView类继承自UIResponder,负责在屏幕上定义一个矩形区域,视图用于展示界面及响应用户界面交互。每个视图对象都要负责渲染视图区域的内容,并响应该区域中发生的操作事件。
  4. 视图可以嵌套并管理子视图。子视图是指嵌入到另一视图对象内部的视图对象,而被嵌入的视图对象是父视图。
  5. UI控件基本介绍

    1. UIButton 按钮 按钮的作用是监听用户的点击时间,在用户点击后做出响应
    2. UILabel 文本标签 文本标签的作用是显示一串固定的文字
    3. UITextField 文本输入框 例如输入用户名或者是密码的部分,键入内容的区域
    4. UIImageView 图片的显示 用于显示图片,添加图片的
  6. UIButton的常见设置

    1. 设置按钮的文字:- (void)setTitle:(NSString *)title forState:(UIControlState)state
    2. 设置按钮的文字的颜色:- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
    3. 设置按钮内部的小图片:- (void)setImage:(UIimage *)image forState:(UIControlState)state;
    4. 设置按钮的背景图片:- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
  7. UILabel的常见属性

    1. 显示的文字:@property (nonatomic,copy) NSString *text;
    2. 字体:@property (nonatomic,retain) UIFont *font;
    3. 颜色:@property (nonatomic,retain) UIColor *textColor;
    4. 对齐模式:@property (nonatomic) NSTextAlignment textAlignment;
    5. 文字行数:@property (nonatomic) NSInteger numberOfLines;
    6. 换行模式:@property (nonatomic) NSInteger numberOfLines;
  8. UIImageView的常见属性

    1. 显示图片:@property (nonatomic,retain) UIImage *image;
    2. 显示动画图片:@property (nonatomic,copy) NSArray *animationImage;
    3. 动画图片的持续时间:@propert (nonatomic) NSTimeInterval animationDuration;
    4. 动画的播放次数(默认是0,代表是无限循环播放):@property (nonatomic) NSInteger animationRepeatCount;

思考

  1. 主要用 UI View 及其子类,UI Window 用的不多

作业

通过两种方式实现类似QQ登录界面

  • XIB布局约束实现登录界面
  • 纯代码实现登录界面

源文件

  • UI基础控件(2018-07-27).key

issue 23 :iOS 系统架构

发表于 2018-09-09   |   分类于 Objectiv-C 课程

笔记部分

  1. iOS 可以分为 核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。

    1. Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。作为app开发者不需要与这一层打交道。
    2. Core Services是核心服务层,可以通过它来访问iOS的一些服务。
    3. Media是媒体层,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。
    4. Cocoa Touch是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。
  2. iOS 生命周期:在 main.m 中指明,进入到 AppDelagate 文件。图片描述
  3. application didFinishLaunchingWithOptions:当应用程序启动时执行,应用程序启动入口,只在应用程序启动时执行一次。若用户直接启动,lauchOptions内无数据,若通过其他方式启动应用,lauchOptions包含对应方式的内容。
  4. applicationWillResignActive:在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。
  5. applicationDidEnterBackground:在应用程序已进入后台程序时,要执行的委托调用。
  6. applicationWillEnterForeground:在应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。
  7. applicationDidBecomeActive:在应用程序已被激活后,要执行的委托调用,刚好与applicationDidEnterBackground 方法相对应。
  8. applicationWillTerminate:在应用程序要完全推出的时候,要执行的委托调用,这个需要要设置UIApplicationExitsOnSuspend的键值。
  9. 调用顺序

    1. 初次启动:iOS_didFinishLaunchingWithOptions—>iOS_didFinishLaunchingWithOptions
    2. 按下home键:iOS_applicationWillResignActive—>iOS_applicationDidEnterBackground
    3. 点击程序图标进入:iOS_applicationWillEnterForeground—>iOS_applicationDidBecomeActive

思考

  1. 生命周期的理解有利于进行应用的开发。默认只用第一个,后续可能随着应用的复杂,会用更多。

源文件

  • UI基础控件(2018-07-27).key

issue 22 :OC 基础 - 类之间的通信

发表于 2018-09-09   |   分类于 Objectiv-C 课程

笔记部分

  1. delegate:如果A和B有相互的关联,就用delegate ,代理是一对多
  2. notification:采用单例的设计模式,如果没关系就用通知.,通知是多对多,而且发送的只管发送,接收的只管接收.当需要跨越多个控制器进行传值的时候,notification是一个最方便的选择.,使用完毕需要及时注销
  3. block:block跟delegate使用场合类似,使用起来更简单一些.,但block使用都是在一对一
  4. 在开发项目中,有很多时候我们需要一个全局的对象,而且要保证全局有且仅有一份即可。单例在这个时候就是最佳的选择,但是需要注意的是:在多线程的环境下也需要做好线程保护。

思考

  1. 代理模式是一种设计模式
  2. 通知模式也是一种设计模式

作业

定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值。(Objective-C)

  1. 使用NSLog输出学生对象时,输出信息格式为:My Name Is XXX  Age Is XXX Score Is XXX
  2. 对5个学生对象按照成绩—》年龄—》姓名优先级排序(成绩相同按照年龄排序,成绩年龄相同按照姓名排序(5个学生的属性值自己随便设定,姓名不考虑中文,按26个大小字母排序))
© 2019 Powered by Typecho & Theme 豫ICP备15027577号