新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

上一篇文章写到IOS开发环境搭建,还没学会的读者可参考IOS开发环境搭建,今天我们熟悉一下开发工具的基本使用,为了对IOS软件开发有一个基础的认识,同时提升学习兴趣,我们先实现一个简单的布局的app。

创建项目

上一篇文章结尾简单提及过xcode的项目创建,咱们重头再创建一个项目:

打开Xcode软件,出现如下界面:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

xcode初始界面

点击Create a new Xcode project进入创建项目界面,我们选择IOS -> App:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

xcode创建项目界面

点击“next”后,输入项目名,笔者这里给项目取名为ios_study:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

输入项目名

点击“next”后弹出文件选择框,此时选择一个目录用来保存我们创建的项目及项目中的代码文件等,笔者选择的是~/io_projects/

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

选择项目文件目录

选择好目录后,点击create,xcode完成项目创建,此时出现如下项目界面:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

IOS项目开发界面

在项目界面中,左右是项目结构目录,中间是代码编辑器,右边是我们创建的app界面预览。

Xcode的基础使用

创建了项目后,我们再来熟悉一下Xcode的基础使用

修改主题&字体

在菜单栏中选择Xcode -> Settings,老版本的系统是Xcode -> Preferences,或者按下快捷键 cmd 逗号,操作方式如下图:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

此时出弹出Xcode设置界面,笔者更喜欢使用深色主体,选择Generic -> Appearance,将界面改为Dark:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

Xcode设置界面

选择Themes,修改代码编辑器主题及字段:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

代码编辑器主题

项目结构介绍

在Xcode的左边栏中,我们的项目有如下图所示的结构:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

项目结构

其中ios_study目录是我们的代码目录,而ios_studyTests和ios_studyUITests是测试代码目录,咱们可以先不和测试代码目录。

在ios_study目录下可以看到三个文件,分别是:

  1. ios_studyApp:这是我们的app入口代码,如果读者没有编码基础,可以先忽略这个代码文件中的内容,咱们后续文章再学习
  2. ContentView:这是app的主界面的布局,咱们下文重点学习
  3. Assets:这是项目中用于管理项目资源的文件,比如app中使用到的图片、app的图标等

新同学看不懂里面的代码不用急,随着学习的深入,慢慢就精通了。

界面布局

废话不再多说,咱们先通过创建一个简单的软件界面学习一下IOS开发的基础界面布局,后续再慢慢学习如何给软件界面添加功能实现。

打开上文介绍的ContentView文件,我们看到如下代码:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

ContentView初始代码

初始代码不长,它的作用就是展示一个地球图标,图标的下方有“Hello, world”文字,在预览里可以看到:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

hello word

回到ContentView,我们先来介绍一下这个代码的结构:

首先,第一行的import swiftUI表示的是导入SwiftUI库,SwiftUI库是苹果官方提供的IOS APP开发工具,咱们所用的的软件界面元素都是SwiftUI库提供的,有了SwiftUI库,我们能非常简单的创建需要的软件界面,import关键词就是导入的意思,import SwiftUI意为在当前代码文件中加入SwiftUI的支持。

第二部分的代码是主界面的布局:

struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundColor(.accentColor) Text("Hello, world!") } .padding() }}

这里先介绍相关关键词:

  1. struct:和import一样,struct是swift编程语言提供的关键词,struct表示结构体,即将多个数据放在一起组成一个新的数据结构。
  2. var:表示变量,var body表示名为body的变量,变量就类似于中学数学函数中的x和y
  3. some:some关键词本文先不作介绍,在后续文章里我们会学习swift开发的知识时再作详细介绍

界面布局:

  1. VStack:可以理解为创建一个纵向布局,在VStack中,所有的界面元素都是纵向排列的,类似的还有HStack表示横向布局,即所有元素横向排列
  2. Image:表示展示一个图片
  3. Text:表示展示一个文字内容

ContentView中第三部分的代码如下:

struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }}

这段代码是生成预览界面时使用,其作用就是生成ContentView界面布局的预览

开发界面

前面简要的介绍了一下IOS app开发的界面布局,咱们现在着手创建自己的界面。

第一步:删除ContentView中原有的布局代码,仅保留VStack,删除后如下:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

在Xcode的右上角有一个 号按钮,点击出弹出选择组件界面,我们可从中选择自己想要添加的组件,例如选择Tab View创建一个具有选项卡的界面布局:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

选择界面组件

选择Tab View后会出现如下代码,Xcode为我们生成了两个选项卡:

struct ContentView: View { var body: some View { VStack { TabView(selection: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Selection@*/.constant(1)/*@END_MENU_TOKEN@*/) { Text("Tab Content 1").tabItem { /*@START_MENU_TOKEN@*/Text("Tab Label 1")/*@END_MENU_TOKEN@*/ }.tag(1) Text("Tab Content 2").tabItem { /*@START_MENU_TOKEN@*/Text("Tab Label 2")/*@END_MENU_TOKEN@*/ }.tag(2) } } .padding() }}

咱们修改其中的Text内容,也可以增加或删除选项卡,例如:

struct ContentView: View { var body: some View { VStack { TabView(selection: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Selection@*/.constant(1)/*@END_MENU_TOKEN@*/) { Text("").tabItem { Text("主页") }.tag(1) Text("").tabItem { Text("位置") }.tag(2) Text("").tabItem { Text("我的") }.tag(3) } } .padding() }}

修改代码后,Xcode右侧的预览界面显示如下软件界面:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

有了选项卡后,我们可以在选项卡中添加其它界面组件,我们将第一个tabItem前面的Text删除,并从上文介绍的组件选择框中选择List组件

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

选择List组件

List组件则是创建一个列表,此时代码如下:

struct ContentView: View { var body: some View { VStack { TabView(selection: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Selection@*/.constant(1)/*@END_MENU_TOKEN@*/) { List { } .tabItem { Text("主页") }.tag(1) Text("").tabItem { Text("位置") }.tag(2) Text("").tabItem { Text("我的") }.tag(3) } } .padding() }}

我们在List {}中添加Text,Button,TextField(文本输入框)等,也可从组件选择器中选择,熟悉后直接添加代码更加方便,代码如下:

import SwiftUIstruct ContentView: View { var body: some View { TabView(selection: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Selection@*/.constant(1)/*@END_MENU_TOKEN@*/) { List { Text("IOS开发") Button("Java开发") { } TextField("其它请输入", text: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Value@*/.constant("")/*@END_MENU_TOKEN@*/) } .tabItem { Text("主页") }.tag(1) Text("").tabItem { Text("位置") }.tag(2) Text("").tabItem { Text("我的") }.tag(3) } }}struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }}

可以看到app预览变为:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

主页预览

其它界面组件,读者可自己学习探索,后续笔者会介绍一些常用组件供大家学习。

添加地图位置

通过上文的学习,相信读者已经学会了基础的布局,咱们这一节学习如何使用地图。

第一步:在右侧的项目结构文件中选择ios_study,右键选择New File,如下图:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

创建文件

在弹出的文件创建框中选择SwiftUI View,表示创建一个新的界面

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

创建swiftui view

点击Next,在文件名中输入MapView,再点击create,此时创建了一个名为MapView的组件代码文件,咱们删除其中不需要的Text("Hello, World")后,如下:

import SwiftUIstruct MapView: View { var body: some View { }}struct MapView_Previews: PreviewProvider { static var previews: some View { MapView() }}

修改为如下代码,如果读者是初学者不明白其意义也无仿,咱们就当是提前接触了:

import Foundationimport SwiftUIimport MapKitstruct MapView: View { var coordinate: CLLocationCoordinate2D @State private var region = MKCoordinateRegion() var body: some View { Map(coordinateRegion: $region) .onAppear { setRegion(coordinate) } } private func setRegion(_ coordinate: CLLocationCoordinate2D) { region = MKCoordinateRegion( center: coordinate, span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2) ) }}struct MapView_Previews: PreviewProvider { static var previews: some View { MapView(coordinate: CLLocationCoordinate2D(latitude: 40.22077, longitude: 116.23128)) }}

右侧预览中显示:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

地图预览

创建好地图组件中,我们将地图组件加入到主界面中:

  1. 从左侧项目文件中打开ContentView
  2. 在代码的import SwiftUI后面加上import MapKit,表示导入地图组件
  3. 将第二个Tab的Text替换成Map组件,咱们使用北京昌平的位置作为地图上的坐标

代码如下:

import SwiftUIimport MapKitstruct ContentView: View { var body: some View { TabView(selection: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Selection@*/.constant(1)/*@END_MENU_TOKEN@*/) { List { Text("IOS开发") Button("Java开发") { } TextField("其它请输入", text: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Value@*/.constant("")/*@END_MENU_TOKEN@*/) } .tabItem { Text("主页") }.tag(1) // 使用地图组件 MapView(coordinate: CLLocationCoordinate2D(latitude: 40.22077, longitude: 116.23128)) .tabItem { Text("位置") }.tag(2) Text("").tabItem { Text("我的") }.tag(3) } }}struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }}

运行代码

在修改完代码后,咱们点击项目结构栏上的三角形按钮,Xcode会运行代码并启动iphone模拟器:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

运行代码

当显示build success后,屏幕上弹出iphone模拟器,iphone模拟器类似于一个iphone手机,我们可以在里面操作我们的app:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

主页-模拟器

选择位置选项卡后出现地图:

新手学IOS开发-APP界面布局基础开发(ios开发 界面布局)

位置-模拟器

今天的内容先学习到这里,后续文章将介绍swift开发的基础知识,欢迎关注。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月26日 上午11:58
下一篇 2023年4月26日 下午3:48

相关推荐

  • 多项目同时进行,如何使用进度猫进行管理

    单项目管理的对象是某一具体的项目,实现了项目目标,达到了管理的目的。 而多项目管理,不是项目数量的增加。它关注组织的战略规划、资源配置,注重项目间、项目与职能部门间的协调。因此,多…

    2022年7月27日
    278
  • 科研项目结题后发绩效

    科研项目结题后发绩效 随着科研项目的不断推进,最终我们的研究项目终于结题了。在这漫长的过程中,我们经历了无数的挑战和艰辛,但是我们始终坚信,我们的努力一定会得到回报。现在,当我们将…

    科研百科 2025年5月25日
    1
  • 高德上市

    高德地图成功上市,成为中国互联网地图市场的重要参与者。这是高德公司多年来致力于技术创新和商业模式创新的成果,也是中国数字经济的重要组成部分。 高德地图成立于2008年,是一家以地图…

    科研百科 2024年11月19日
    3
  • 合同管理报表

    合同管理报表 合同管理是商业管理中至关重要的一部分,能够确保公司的法律合规性和业务运营效率。一份好的合同管理报表可以帮助公司更好地了解合同状态,跟踪合同执行进度,并及时发现和解决问…

    科研百科 2024年8月25日
    39
  • eps项目管理

    eps项目管理 eps项目管理是指一种将项目分解成多个子项目,并为每个子项目制定明确的计划和时间表的方法。这种方法可以大大提高项目管理的效率,并减少项目风险。 eps项目管理的主要…

    科研百科 2024年5月23日
    115
  • 为什么企业要使用项目管理系统?管理系统开发的常见软件(企业为何需要项目管理)

    如果没有一套完整的方法论和一套好用的项目管理工具,现实生活中我们会发现即使是一个很小的项目,时间也会越做越长,成本越做越高。而项目本身毫无进展。所以需要项目管理系统,项目管理理论固…

    科研百科 2023年10月24日
    119
  • 油料所花生黄曲霉抗性遗传改良与新品种培育获突破

        黄曲霉毒素污染一直是世界范围内花生生产、贮藏及加工中面临的严重威胁。我国是花生黄曲霉毒素污染较严重的国家之一,在长江流域和南方的广大青枯病地区…

    科研百科 2022年5月18日
    336
  • 「政府采购」国家科学技术进步奖可以作为评分项吗?(国家科技进步奖可以买吗)

    国家科学技术进步奖可以作为评分项吗? 某医院委托代理机构以公开招标的方式采购综合楼中央空调及安装项目,招标文件技术分部分规定“投标人所投直燃机获得过如下国家级重要奖项:国家科技进步…

    科研百科 2024年4月17日
    176
  • 怎么拿到科研项目资助

    拿到科研项目资助是许多研究人员梦寐以求的目标。以下是一些可能有助于拿到科研项目资助的建议: 1. 了解项目资助政策:不同的国家或地区有不同的科研项目资助政策,因此需要仔细研究所在地…

    科研百科 2025年2月26日
    0
  • 狠抓重大科研项目

    狠抓重大科研项目,是当前国家科技发展的重要战略,也是实现中华民族伟大复兴的关键时期。为了促进科技创新,提高我国科技实力和国际竞争力,我们必须狠抓重大科研项目,加强科研管理,提高科研…

    科研百科 2025年2月12日
    2