这个App的是storyboard+code的结合,主要的重点是:

1.segue传递图片值。

2.Autolayout中可以使用右下角三角符号使用Add Missing Constraints进行大概约束,使之适应不同大小屏幕。

3.上边栏Editor -> Embed In -> Navigation Controller或者Tab Bar Controller。

4.实现分享功能。

5.注意storyboard设计Navigation Controller界面时关于segue的modal类型要改为push类型。

6.按住Command点击某个Controller控件代码可显示其方法类。

storyboard设计界面:

目录结构:

ViewController.swift文件代码:

 import UIKit
class ViewController: UIViewController { @IBOutlet weak var beautyPicker: UIPickerView!
let beauties = ["范冰冰","李冰冰","王菲","杨幂","周迅"]
override func viewDidLoad() {
super.viewDidLoad()
beautyPicker.dataSource = self
beautyPicker.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "GoToGallery"{
let index = beautyPicker.selectedRowInComponent(0)
var imageName:String?
switch index{
case 0:
imageName = "fanbingbing"
case 1:
imageName = "libingbing"
case 2:
imageName = "wangfei"
case 3:
imageName = "yangmi"
case 4:
imageName = "zhouxun"
default:
imageName = nil }
var vc = segue.destinationViewController as! GalleryController
vc.imageName = imageName
}
}
}

View.swift (ViewController.swift的额外扩展文件):

 import UIKit

 extension ViewController:UIPickerViewDataSource{
// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return beauties.count
}
}
extension ViewController:UIPickerViewDelegate{
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!{
return beauties[row]
}
}

GalleryController.swift文件代码:

 import UIKit
import Social

class GalleryController: UIViewController {
var imageName:String? @IBOutlet weak var beautyImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
/*if (imageName != nil){
beautyImage.image = UIImage(named: imageName!)//修改前
}*/ if let name = imageName {
beautyImage.image = UIImage(named: name)
switch name{
case "fanbingbing":
navigationItem.title = "范冰冰"
case "libingbing":
navigationItem.title = "李冰冰"
case "wangfei":
navigationItem.title = "王菲"
case "yangmi":
navigationItem.title = "杨幂"
case "zhouxun":
navigationItem.title = "周迅"
default:
navigationItem.title = "女神画廊"
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} //分享按钮
@IBAction func shareTapped(sender: AnyObject) {
var controller: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTencentWeibo)
controller.setInitialText("一起来玩女神画廊app吧,就在Github上")
controller.addImage(beautyImage.image)
self.presentViewController(controller, animated: true, completion: nil)
}
}

KoreanViewController文件代码:

 import UIKit
import Social
class KoreanViewController: UIViewController {
@IBOutlet weak var beautyImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//facebook分享
@IBAction func facebooTapped(sender: AnyObject) {
var controller: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
controller.setInitialText("一起来玩女神画廊app吧,就在Github上")
controller.addImage(beautyImage.image)
self.presentViewController(controller, animated: true, completion: nil)
}
//twitter分享
@IBAction func twitterTapped(sender: AnyObject) {
var controller: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
controller.setInitialText("一起来玩女神画廊app吧,就在Github上")
controller.addImage(beautyImage.image)
self.presentViewController(controller, animated: true, completion: nil)
}
//微博分享
@IBAction func WeiboTapped(sender: AnyObject) {
var controller: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeSinaWeibo)
controller.setInitialText("一起来玩女神画廊app吧,就在Github上")
controller.addImage(beautyImage.image)
self.presentViewController(controller, animated: true, completion: nil)
}
}

运行结果:

github地址:https://github.com/AbelSu131/BeautyGallery

女神画廊App (Swift1.2)的更多相关文章

  1. Android ViewPager打造3D画廊

    本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 网上有很多关于使用Gallery来打造3D画廊的博客,但是在关于Gallery的官方说法中表明: This cl ...

  2. 英语学习app分析

    以下数据分析由队员张波收集整理队员链接 队友的博客 一.数据统计 为了让统计数据更加准确可信,我们选取了三款android平台的应用市场软件作为数据的来源. 英语学习app下载量统计表: 序号 应用名 ...

  3. Android -- 使用ViewPager实现画廊效果

    1,今天在微信推送文章看到实现画廊效果,感觉挺不错的,就来写写试试,先来看一下效果图: 上面的效果基本上可以用两个功能点来包含:ViewPager的切换动画.ImageView的倒影的实现 嗯,先来将 ...

  4. iOS完整App资源收集

    前言 iOS开发学习者都希望得到实战训练,但是很多资料都是只有一小部分代码,并不能形成完成的App,笔者在此处收集了很多开源的完整的App,都有源代码哦! 本篇文章持续更新中,请持续关注.本篇所收集的 ...

  5. 闹钟类app构想

    NABC--闹钟app N:我们打算针对那些易健忘的人来制作一款闹钟功能的记事本,具来说服务的对象有很多:有健忘的人,还有情侣,北漂的人及其父母(...),常年见不到亲人(双方),后期我们若提前完成基 ...

  6. Android 高仿豌豆荚 一键安装app 功能 实现

    以往我们那些应用市场 帮我们安装app的时候  我们都得点确定,当然你如果 root 以后 不用点确定 也能自动安装了,后来豌豆荚 推出了一个功能 非root的手机也能不点确定 直接帮你安装好.(如果 ...

  7. Android 高级UI设计笔记15:HorizontalScrollView之 实现画廊式图片浏览器

    1. HorizontalScrollView 本来,画廊式的图片浏览器,使用Android中的Gallery就能轻松完成,但是Google说Gallery每次切换图片时都要新建视图,造成太多的资源浪 ...

  8. Android 高级UI设计笔记11:Gallery(画廊控件)之Gallery基本使用

    1. 这里要向大家介绍Android控件Gallery(画廊控件) Gallery控件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Galler ...

  9. Android画廊控件之Gallery

    Gallery:用来显示图片列表.可以左右拖动. 如图: 图片取自http://www.cnblogs.com/menlsh/archive/2013/02/26/2934434.html 在Gall ...

随机推荐

  1. Angular 中引入BootStrap

    由于Bootstrap官方目前并没有发布Angular的相关类库进行支持,当前Angular只能引用使用Bootstrap相关的样式.无法使用Bootstrap自带的脚本逻辑.以下以Angular7和 ...

  2. <Android 应用 之路> 干货集中营 ~ GankIOClient

    简介 利用干货集中营 , daimajia和他的小伙伴给我们开发者带来的福利开发的一个干货集中营客户端,主要功能在阅读干货上. Github地址: https://github.com/onlylov ...

  3. [经典Bug]Android-初始化闪屏不消失

    问题描述: 业务上初始化过程要求显示闪屏界面,某个版本更新后,发现部分场景下,初始化完成后闪屏界面不消失. 问题原因: 初始化是在子线程进行,闪屏属于UI界面,需要UI线程展示.初始化过程和闪屏显示在 ...

  4. scott/tiger is locked 解决办法

    在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked. 解决办法: 新装完Oracle10g后,用scott/tige ...

  5. Operating System Error Codes

    How To Fix Windows Errors Click here follow the steps to fix Windows and related errors. Instruction ...

  6. C# post json 匿名类 序列化

    //第一步 建立HTTP请求对象 var httpWebRequest = (HttpWebRequest)WebRequest.Create(apiURL); httpWebRequest.Cont ...

  7. mysql5.7.24启动报错:ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

    报错原因是:密码过期.不管你是刚刚修改密码还是什么,只要登陆都是有问题的,都是报这样子的错误. 解决方法是: 1.修改/etc/my.cnf文件,在[mysqld]下加入“skip-grant-tab ...

  8. Amazon Redshift数据库

    Amazon Redshift介绍 Amazon Redshift是一种可轻松扩展的完全托管型PB级数据仓库,它通过使用列存储技术和并行化多个节点的查询来提供快速的查询性能,使您能够更高效的分析现有数 ...

  9. mariadb使用\s查看用户权限

    今天出现一个问题就是:给zabbix用户赋予权限 语句如下: grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix' 按照这样的说法应 ...

  10. 团队作业——Alpha冲刺 12/12

    团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:自定义保存界面布局以及交互接口函数的实现 明日任务:总结项目中的问题,为什么没能按照预期推进项目 郭剑南 今日任务:继续解决Python编 ...