← Back to list

#8 紙娃娃app開發_複習亂數

這份作業卡關有點久,主要是對秀出圖片方式還有圖片檔名的設定摸索了很久。

阿勇(ayung) in 彼得潘的 Swift iOS / Flutter App 開發教室 · 2021-08-21 08:07 · 56 claps · 7.3 min read
#app-development #random
Open on Medium ↗

#8 紙娃娃app開發_複習亂數

這份作業卡關有點久,主要是對秀出圖片方式還有圖片檔名的設定摸索了很久。

以下為圖片下載與教學參考:

[embed]#105 使用 Open Peeps 圖庫開發紙娃娃 App 感謝插畫家 Pablo Stanley 免費提供一系列的人物插畫,我們可以自由地更換髮型,衣服、表情等,打造帥氣美麗的人物。有興趣的朋友不妨試試利用 Open Peeps 圖庫開發有趣的紙娃娃 App 。medium.com

下載圖檔後將圖檔加到 Assets

將圖檔加到 Xcode 的 Assets.xcassets,勾選 Preserve Vector Data,Scales 選擇 Single Scale。

要記得將render as 調成Original image

否則圖片呈現就會變成以下情形。

outlet跟action拉好後打好換裝的程式碼,基本上都按照自己想的方式切換。 但加上亂數功能時,array裡面放著錯誤的圖片檔名,按下按鈕後一直呈現無圖狀況,卡了好幾天才確定是要輸入自己改過後的檔名。

以下為完整程式碼:

import UIKit
class ViewController: UIViewController {
    @IBOutlet weak var hairStyleImageView: UIImageView!

    @IBOutlet weak var faceImageView: UIImageView!

    @IBOutlet weak var clothesImageView: UIImageView!

    @IBOutlet weak var glassesImageView: UIImageView!

    @IBOutlet var glassesListView: UIView!

    @IBOutlet var clothesListView: UIView!

    @IBOutlet var faceListView: UIView!
    @IBOutlet var hairStyleListView: UIView!

    let hairStylelist = ["hairStyle1","hairStyle2","hairStyle3","hairStyle4","hairStyle5","hairStyle6","hairStyle7","hairStyle8","hairStyle9","hairStyle10","hairStyle11","hairStyle12","hairStyle13","hairStyle14","hairStyle15","hairStyle16","hairStyle17","hairStyle18","hairStyle19","hairStyle20","hairStyle21","hairStyle22","hairStyle23","hairStyle24","hairStyle25","hairStyle26","hairStyle27","hairStyle28","hairStyle29","hairStyle30","hairStyle31","hairStyle32","hairStyle33","hairStyle34","hairStyle35","hairStyle36","hairStyle37","hairStyle38","hairStyle39","hairStyle40","hairStyle41","hairStyle42","hairStyle43","hairStyle44","hairStyle45","No Hair"]
    let clothesList = ["clothes1","clothes2","clothes3","clothes4","clothes5","clothes6","clothes7","clothes8","clothes9","clothes10","clothes11","clothes12","clothes13","clothes14","clothes15","clothes16","clothes17","clothes18","clothes19","clothes20","clothes21","clothes22","clothes23","clothes24","clothes25","clothes26","clothes27","clothes28","clothes29","clothes30"]

    override func viewDidLoad() {
        super.viewDidLoad()
        glassesListView.isHidden = true
        clothesListView.isHidden = true
        faceListView.isHidden = true
        hairStyleListView.isHidden = false

    }
@IBAction func clothesChangeBtn(_ sender: UIButton) {
        clothesImageView.image = sender.currentImage
    }

    @IBAction func faceChangeBtn(_ sender: UIButton) {
        faceImageView.image = sender.currentImage
    }
@IBAction func hairStyleChangeBtn(_ sender: UIButton) {
        hairStyleImageView.image = sender.currentImage
    }
@IBAction func glassesChangeBtn(_ sender: UIButton) {
        glassesImageView.image = sender.currentImage
    }

    @IBAction func clothesBtn(_ sender: UIButton) {
        glassesListView.isHidden = true
        clothesListView.isHidden = false
        faceListView.isHidden = true
        hairStyleListView.isHidden = true
    }
@IBAction func faceBtn(_ sender: UIButton) {
        glassesListView.isHidden = true
        clothesListView.isHidden = true
        faceListView.isHidden = false
        hairStyleListView.isHidden = true
    }

    @IBAction func hairStyleBtn(_ sender: UIButton) {
        glassesListView.isHidden = true
        clothesListView.isHidden = true
        faceListView.isHidden = true
        hairStyleListView.isHidden = false
    }

    @IBAction func glassesBtn(_ sender: UIButton) {
        glassesListView.isHidden = false
        clothesListView.isHidden = true
        faceListView.isHidden = true
        hairStyleListView.isHidden = true
    }


    @IBAction func randomBtn(_ sender: UIButton) {


        hairStyleImageView.image = UIImage(named: hairStylelist.randomElement()!)
        clothesImageView.image = UIImage(named: clothesList.randomElement()!)

    }

}

메타데이터
post_id
602d61396ca1
slug
8-紙娃娃app開發-複習亂數-602d61396ca1
url
https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E6%95%99%E5%AE%A4/8-%E7%B4%99%E5%A8%83%E5%A8%83app%E9%96%8B%E7%99%BC-%E8%A4%87%E7%BF%92%E4%BA%82%E6%95%B8-602d61396ca1
canonical_url
https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E6%95%99%E5%AE%A4/8-%E7%B4%99%E5%A8%83%E5%A8%83app%E9%96%8B%E7%99%BC-%E8%A4%87%E7%BF%92%E4%BA%82%E6%95%B8-602d61396ca1
author_url
https://medium.com/@ayungpei
status
ok
fetched_at
2026-07-28 01:28:59