专栏首页悟空聊架构 | 公众号【从零开始用Swift开发一个iOS应用(仿微博)】开篇-1. demo上手体验

【从零开始用Swift开发一个iOS应用(仿微博)】开篇-1. demo上手体验

最近在学iOS开发,本系列会针对iOS从前到后的开发进行全面讲解,小到开发工具使用,大到应用市场上线。

需求:

1.显示一个橘黄色矩形
2.矩形上面一个按钮可以点击,并有响应事件
3.界面中心显示一张图片

系统版本:

Mac OS 版本:10.15.5
Xcode版本:11.5

一、创建demo项目

1.1 选择创建一个Xcode Project

1.2 选择Single View App

二、代码实现

2.1 程序入口说明

Application/AppDelegate.swift文件中的@UIApplication注解,表示这个Class类是程序的入口

2.2 代码结构说明

所有方法放到一个{}中,并有缩进。

和Java编码格式非常相似。

2.3 功能实现

2.3.1 创建一个视图,添加一个黄色矩形

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        // 1.创建一个视图
        let v = UIView(frame: CGRect(x:0, y:0, width: 100, height: 100))
        
        // 2.设置背景颜色
        v.backgroundColor = UIColor.yellow
        
        // 3.添加到当前视图
        view.addSubview(v)
    }
}

效果如下所示:一个黄色矩形在左上角

2.3.2 添加一个按钮,并添加按钮点击事件的监听方法

// 2.创建一个按钮
let btn = UIButton(type: .contactAdd)

// 2.1 添加到当前视图
v.addSubview(btn)

// 2.2 添加点击事件
btn.addTarget(self, action: #selector(btnClick), for: .touchUpInside)

// 2.3 btnClick事件方法输出日志

效果如下所示,一个按钮在左上角,点击按钮将会输出日志

2.3.3 添加一个图片

// 3.1 添加一个图片
let iv = UIImageView(image: #imageLiteral(resourceName: "2.jpeg"))

// 3.2 添加到视图
iv.center = view.center

图片的资源路径可以通过代码添加,也可以通过工具添加

效果如下所示,图片会显示在屏幕中间。

三、上述示例swift与object-c的语法对比

3.1 创建视图类比

- Swift: UIView(XXX:)
- OC: [[UIView alloc] initWithXXX:]
  类名() == alloc / init 等价

3.2 类方法类比

Swift: UIColor.yellow
OC: [UIColor yellow]

3.3 访问当前对象的属性类比

  • 建议:都不使用self.。当编译器提示的时候,再添加,会对语境有更好的机会;
  • 原因:闭包(类似于 OC block)需要使用self。

3.4 不需要;

除非多行代码语句写在同一行中。

3.5 枚举类型 type对比

Swift:`type: .contactAdd`
OC: UIButtonType.ContactAdd

3.6 监听方法对比

Swift: #selector,如果带参数,不需要使用`:`
OC: @selector

3.7 调试对比

  • Swift: print(xxx) 效率高,log中不包含时间,用#function来打印当前执行的方法
  • OC: NSLog,用__FUNCTION__ 来打印当前执行的方法

四、注释的妙用

当我们想标注某段代码是需要refine的,我们可以添加注释标签:TODO

如下图所示,我在注释中添加了MARKTODOFIXME标签前缀,这些特殊标记的锚点菜单将会显示在导航栏上,点击菜单即可跳转到对应注释的地方,非常方便。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【专注力管理:让你的努力更高效】总结

    悟空聊架构
  • 【专注力管理:让你的努力更高效】总结

    悟空聊架构
  • 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    悟空聊架构
  • polyv保利威直播开通短信验证流程(腾讯云)

    https://cloud.tencent.com/act/cps/redirect?redirect=10541&cps_key=7ec43b056bd01c...

    用户5702157
  • Merit技术人员价值管理系统——完善编辑结构

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

    hotqin888
  • 非典那年记忆

    ABP core 的框架在过年期间,从1.0突然升级到2.0了,。 整个ABPCore 虽然版本变化 大,但使用流程基本不变吧, 我看官网上文档基本完毕了,官网...

    崔文远TroyCui
  • 《Build the BookStore Application using the ABP vNext web application framework》笔记

    ABP core 的框架在过年期间,从1.0突然升级到2.0了,。 整个ABPCore 虽然版本变化 大,但使用流程基本不变吧, 我看官网上文档基本完毕了,官网...

    申君健
  • Twitter公布曼哈顿实时数据库细节 新一轮数据库技术革命启动

    Twitter曼哈顿数据库的横空出世表明当今的数据库技术已经无法满足大型互联网公司的独特需求,新一轮数据库技术革命已经启动。 Twitter是所有大型互...

    静一
  • 【钱塘号专栏】《大数据投资手册》(行业深度梳理)

    在今年深度报告的基础上,华创计算机团队决定以一个产品的形式(行业深度梳理:A股投资手册系列),从投资的角度对包括人工智能、消费金融、SaaS、云安全、物联网、...

    钱塘数据
  • Pardus 17.1 发布,基于 Debian 的发行版

    此次更新内容:新版本提供了三个不同名称的独立 ISO 映像表明意图 — Xfce,DDE(Deepin 桌面环境)和服务器。

    Debian社区

扫码关注云+社区

领取腾讯云代金券