
1、要使用swift须拥有一台苹果电脑。因为集成开发环境XCode只能运行在OS X系统上。电脑系统必须在OS 1093及以上,电脑必须安装Xcode集成开发环境。
2、下载完成后,双击下载的 dmg 文件安装,安装完成后我们将 Xcode 图标踢移动到应用文件夹。Xcode 安装完成后,就可以开始编写 Swift 代码了。接下来我们在应用文件夹打开 Xcode,打开后在屏幕顶部选择 File => New => Playground。接着 为 playground 设置一个名字并选择 iOS 平台。
3、如果你想创建 OS x 程序,需要导入 Cocoa 包 import Cocoa以上程序载入后,会在Playground 窗口右侧显示程序执行结果。
4、选择一个Single View Application,并点击next,创建一个简单示例app应用。
5、接着我们输入项目名称(ProductName),公司名称(Organization Name),公司标识前缀名(Organization identifier) 还要选择开发语言(Language),选择设备(Devices)。其中Language有两个选项:Objective-c和swift,因为我们是学习swift当然选择swift项了。 点击Next下一步。
6、选择存放的目录,如果要使用Git源代码管理,将勾上Source Control的create git repository on My Mac 点击create创建项目。
7、项目创建后,默认生成了一个示例文件,可以看到swift将oc中的h和m文件合并成了一个文件(即swift后缀名文件) Mainstoryboard相当于xib文件,有比xib更多的功能。
8、打开mainstoryboard,默认看到一个简单的空白的应用界面,大小为平板界面大小。 如果开发都只需要开发兼容iphone手机的app,那么可以把Use Auto Layout的勾去掉(默认为勾上)。d出了一个对话框,让我们选择界面尺寸,iPhone 或 iPad。我们选择iPhone的尺寸。
9、界面添加点内容,在右下方找到Text控件,将它拖入storyboard上,并双击写入文本Hello World!
10、运行一下模拟器(command+R 快捷键或在菜单栏中选择 Product => Run)。
至此,第一个Swift项目就完成了。
10、swift介绍
《Swift》是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS 应用程序。 Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。 Swift 在 Mac OS 和 iOS 平台可以和 Object-C 使用相同的运行环境。 2015年6月8日,苹果于WWDC 2015上宣布,Swift将开放源代码,包括编译器和标准库。
Swift 是一种全新的编程语言,结合了 C 和 Objective-C 的优点,并且不受C兼容性的限制。Swift 采用的安全编程模式添加了很多新特性,这使得编程更简单,更灵活,也更有趣。Swift 在 Foundation 和 Cocoa的基础上构建框架,并且采用了很多 Objective-C 的命名参数以及动态对象模型,并且支持过程式编程和面向对象编程。Swift 将现代编程语言的精华和苹果工程师文化的智慧结合了起来,既能够开发简单的小程序,也能够构建出一套完整的 *** 作系统。
在网上找了很多方法我就不废话了 先一一列举出来
第一种方法:这种方法适配屏幕不是太好,双击才可以完全适配屏幕,有兴趣的话可以自己试一下
第二种方法:
在初始化WKWebView的时候添加配置可以解决自适应的问题 ,但是在加载的内容宽度大于高度的时候就有些不准确了,宽度无法自适应屏幕的宽度,最后我也没搞明白是因为什么原因,最后就放弃了这个方法。
//自适应屏幕宽度js
在加载的过程中我使用KVO监听加载的进度,从而获取最后加载内容的高度。
根据WKWebView的状态去判断是否加载完成:
有可能需要用到进度条和title属性
一定一定要记得移除KVO监听
第三种方法 也是我最后使用的方法:
我的需求是让的大小跟着屏幕的变化而变化,就是动态的去适应屏幕;那么文字的字体就是自己可以控制,可大可小。要想达到这样的效果,在用loadHTMLString加载字符串之前对它进行处理
处理HTMLString的原理:
原理就是用一个for循环,拿到所有的,对每个都处理一次,让的宽为100%,就是按照屏幕宽度自适应;让的高atuo,自动适应。文字的字体大小,可以去改font-size:14px
第一 如果在Cell中用自动布局,拖好constrains,改变Cell的高度。
第二 如果是自己添加的,计算字符串的高宽,然后改变frame,计算高宽用
我写的一个extension嘛
extension NSString {
func textSizeWithFont(font: UIFont, constrainedToSize size:CGSize) -> CGSize {
var textSize:CGSize!
if CGSizeEqualToSize(size, CGSizeZero) {
let attributes = NSDictionary(object: font, forKey: NSFontAttributeName)
textSize = selfsizeWithAttributes(attributes)
} else {
let option = NSStringDrawingOptionsUsesLineFragmentOrigin
let attributes = NSDictionary(object: font, forKey: NSFontAttributeName)
let stringRect = selfboundingRectWithSize(size, options: option, attributes: attributes, context: nil)
textSize = stringRectsize
}
return textSize
}
}
constrainedToSize 如果一行,用CGSizeZero,否则用CGSizeMake(你想要的宽度, CGFloat(MAXFLOAT)
宏_型号SwiftSF514-52TN17W3屏幕的屏幕尺寸为14英寸。
目前宏_笔记本的产品线主要有蜂鸟系列,非凡系列,暗影骑士系列,掠夺者战斧系列这四个系列。销售量仅次于联想,惠普,戴尔,苹果,位列第五。
每一个布局约束就是一个明确的线性变化规则 ,在数学上是以一次函数的形式表示,即:
y = m x + c
其中的firstItem与secondItem分别是界面中受约束的视图与被参照的视图。它们不一定非得是兄弟关系或者父子关系,只要它们有着共同的祖先视图即可,这一点可是autoresizingMask无法做到的。
firstAttribute与secondAttribute分别是firstItem与secondItem的某个布局属性(NSLayoutAttribute):
当我们需要为某个视图指定固定宽度或者高度时,这时候secondItem为nil,secondAttribute为NSLayoutAttributeNotAnAttribute。relation定义了布局关系(NSLayoutRelation):
布局关系不仅限于相等,还可以是大于等于或者小于等于,这种不等关系在处理UILabel、UIImageView等具有自身内容尺寸的控件(自身内容尺寸参见本系列第五篇文章)时非常常用。举个简单的例子,UILabel的长度会随文字的长度而变化,那么我们可以向UILabel控件添加两个约束,分别是“长度大于等于50”与“长度小于等于200”。这样,当文字很少时,宽度也至少为50;当文字非常多时,宽度也不会超过200。
multiplier即比例系数。constant即常量。
因此,每个约束就对应如下关系:
firstItemfirstAttribute {==,<=,>=} secondItemsecondAttribute multiplier + constant
//logoImageView左侧与父视图左侧对齐NSLayoutConstraint leftConstraint = [NSLayoutConstraint constraintWithItem:logoImageViewattribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:logoImageViewsuperviewattribute:NSLayoutAttributeLeading multiplier:10f constant:00f];//logoImageView右侧与父视图右侧对齐NSLayoutConstraint rightConstraint = [NSLayoutConstraint constraintWithItem:logoImageViewattribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:logoImageViewsuperviewattribute:NSLayoutAttributeTrailing multiplier:10f constant:00f];//logoImageView顶部与父视图顶部对齐NSLayoutConstraint topConstraint = [NSLayoutConstraint constraintWithItem:logoImageViewattribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:logoImageViewsuperviewattribute:NSLayoutAttributeTop multiplier:10f constant:00f];//logoImageView高度为父视图高度一半NSLayoutConstraint heightConstraint = [NSLayoutConstraint constraintWithItem:logoImageViewattribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:logoImageViewsuperviewattribute:NSLayoutAttributeHeight multiplier:05f constant:00f];//iOS 60或者70调用addConstraints//[selfview addConstraints:@[leftConstraint, rightConstraint, topConstraint, heightConstraint]];//iOS 80以后设置active属性值leftConstraintactive = YES;
rightConstraintactive = YES;
topConstraintactive = YES;
heightConstraintactive = YES;
将一个已经设置好frame并使用autoresizingMask的视图添加到一个使用自动布局的视图中时,运行时需要隐式地将前者的frame和autoresizingMask转化为自动布局约束(这些隐式转换的约束的类型为NSAutoresizingMaskLayoutConstraint),这样才能明确其位置与尺寸而不会导致约束的缺失。这个隐式转换的过程,是由UIView的translatesAutoresizingMaskIntoConstraints属性的值决定的。默认情况下,为了保证兼容性,该值为YES,表示需要自动进行隐式转换
ios autolayout中NSLayoutAttributeLeft(Right)与NSLayoutAttributeLeading(Trailing)区别
在大天朝,这两种效果是一致的
UIScrollView是IOS中非常有用的一个组件。它是通用组件UITableView的基类也是放置尺寸大于一个屏幕的内容时很好的组织方式。本教程会介绍UIScrollView的下列用法:
如何使用UIScrollView浏览大尺寸。
如何在缩放时保持UIScrollView中的内容居中
如何在UIScrollView中嵌入复杂的显示层次关系。
如何使用UIScrollView的分页(paging)特性, 联合使用UIPageControl在不同页面之间移动。
通过“偷窥”UIScrollView得到前一页,后一页还有当前页的缩略图。
其他内容!
本文假设你熟悉Swift语言和IOS开发。如果你完全是一名初学者, 你可能需要先学习一下本站的其他课程。
本文还假设你知道如何使用Interface Builder在view中添加对象和在你的代码和Storyboard连接outlets。 如果你刚刚接触Storyboards和Interface Builder, 你可以在开始本教程之前线学习一下本站的Storyboards教程。
开始
打开Xcode创建工程。选择File\New\Project…, 接下来选择iOS\Application\Single View Application模版。 在product name输入框中输入ScrollViews, language选择Swift, devices选择 iPhone
单击Next选择工程文件的保存位置。
之后下载工程的资源压缩包, 然后将解加压后的文件拖拽到工程的根目录。并确保选中了“Copy items if needed”复选框。
本文会介绍Scroll view 的四种不同使用方式, 工程采用一个tableview来提供这四个选项。每个选项打开一个新的视图控制器(view controller)来展示scroll views的一种用法。
下图展示了完成时storyboard的状态:
通过下列步骤创建一个tableview:
打开Mainstoryboard删除当前场景。 选择view controller (单击 storyboard) 然后删除它。
关闭Auto Layout功能。在Utilities面板中选择File Inspector, 取消Use Auto Layout复选框的选中状态。这会d出一个警告窗口。在d出窗口中确保“Keep size class data for:”选中了iPhone。然后选择Disable Size Classes。
接下来, 添加一个Table View Controller,从Object Library中拖拽一个Table View Controller到storyboard。
选中刚添加的table, 然后在菜单中选择Editor\Embed In\Navigation Controller。
同时选中table view和table view controller, 将Attributes Inspector中的content type修改为Static Cells(如下图所示)。
在文档概要视图中Table View单击下面的按钮显示storyboard层次关系视图,然后选中Table View Section 将行数设置为4。如下图所示
依次编辑table view的每一行, 将style设置为Basic,编辑显示的标签:
Image Scroll
Custom View Scroll
Paged
Paged with Peeking
注释: 由于你将每一行的style设置成了“Basic”, 表单的每一行会出现额外的标签子组件。你要再次展开每行的子项目来进行编辑。
保存storyboard, 之后构建并运行。你会看到你编辑的table view如下图所示不过现在table view中还没有任何东西 – 但你可以改好它!
以上就是关于swift 教程 swift介绍全部的内容,包括:swift 教程 swift介绍、使用WKWebView自适应屏幕遇到的问题以及最后解决的方法、求助,swift中怎么让UILabel自适应高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)