你如何在一个屏幕上有两个随机字生成器

时间:2016-05-07 23:57:49

标签: ios swift random words

我目前正在开发一款应用程序,您可以在其中分别滑动手机屏幕的两半,每一半向左滑动时会生成一个随机单词。

我为屏幕上半部分创建了一个随机生成单词的单词列表。如何将相同的方法应用于屏幕的下半部分?我在视图控制器中有2个代码图像

import UIKit

class ViewController: UIViewController {
    // put the labels and the buttons
    @IBOutlet var InspirationalThought: UILabel!
    @IBOutlet var Click: UIButton!

    //what the label is going to show

    var quotes = ["Geometrics", "Vectors", "Celebration", "Triangle",      "Landscapes", "Seasons", "Snow", "Rain", "Sunrays", "Stencils", "Paint", "Graphics", "Graffiti", "Sports","Fashion","Ancient Greek", "Philosophers", "Fairy tales", "Fantasy", "Clouds", "Mystery", "Time Clocks", "Canvas", "Tie-dye", "Glitter", "Dessert", "Desert", "Energy", "Astrology", "Solar Systems", "Sea", "Beach", "Sphere", "Roots", "Lights", "Darks", "Fire", "Air", "Aperture", "Long exposure", "Portraits", "World", "Travel", "Architecture", "Freedom", "Old", "New", "Urban", "Lenses", "Fisheye", "Chords", "Music notes", "Spices", "Herbs", "Natural", "Marbles", "Wood", "Trees", "Forests", "Interior","Mammals", "Reptiles", "Ocean", "Birds", "Photography", "Exposure", "Opaque", "Translucent", "Freestyle", "Spots", "Stripes", "Zig Zag", "Spiral", "Glass", "Feathers", "Calm", "Bulb", "Heat", "Cold", "Stitches", "Views", "Birds", "Sunset", "Earth"]

    var whichQuotestoChoose = 0

    // what the button is going to show
    var ButtonText = ["Inspiration", "Tell me more", "more inspirational"]
    var whichButtonTexttoChoose = 0

    @IBAction func ClickButtonClicked(sender: UIButton) {
        chooseAQuote()
        chooseTextonButton()
    }

    func chooseAQuote(){
        showTheQuote()
        whichQuotestoChoose = Int(arc4random_uniform (84))
    }

    func showTheQuote(){
        InspirationalThought.text = "\(quotes[whichQuotestoChoose])"
    }

    func chooseTextonButton(){
        Click.setTitle("\(ButtonText[whichButtonTexttoChoose])", forState:UIControlState.Normal)
    }
}

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

这就是你如何做到的。 如果您的背景保持不变,顶部和底部颜色始终与星形相同,则将其作为图像。

添加imageView并将图像设置为背景图像

将2个UIView的view1和view2添加为顶视图和底视图。将背景颜色设置为clearColor,并将标记分别设置为1和2

使用相同的选择器添加滑动手势2。

将UILabel添加到每个视图label1和label2。

创建一个字符串,以便在swipped时保留引号中的文本。根据视图的标签,相应地设置标签文本。

以下是示例实现:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var view1: UIView!
@IBOutlet weak var view2: UIView!
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!

var displayString: String?
var quotes = ["Geometrics", "Vectors", "Celebration", "Triangle",      "Landscapes", "Seasons", "Snow", "Rain", "Sunrays", "Stencils", "Paint", "Graphics", "Graffiti", "Sports","Fashion","Ancient Greek", "Philosophers", "Fairy tales", "Fantasy", "Clouds", "Mystery", "Time Clocks", "Canvas", "Tie-dye", "Glitter", "Dessert", "Desert", "Energy", "Astrology", "Solar Systems", "Sea", "Beach", "Sphere", "Roots", "Lights", "Darks", "Fire", "Air", "Aperture", "Long exposure", "Portraits", "World", "Travel", "Architecture", "Freedom", "Old", "New", "Urban", "Lenses", "Fisheye", "Chords", "Music notes", "Spices", "Herbs", "Natural", "Marbles", "Wood", "Trees", "Forests", "Interior","Mammals", "Reptiles", "Ocean", "Birds", "Photography", "Exposure", "Opaque", "Translucent", "Freestyle", "Spots", "Stripes", "Zig Zag", "Spiral", "Glass", "Feathers", "Calm", "Bulb", "Heat", "Cold", "Stitches", "Views", "Birds", "Sunset", "Earth"]

var whichQuotestoChoose = 0

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.viewSwipped(_:)))
    swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
    view1.addGestureRecognizer(swipeLeft)

    let swipeLeft1 = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.viewSwipped(_:)))
    swipeLeft1.direction = UISwipeGestureRecognizerDirection.Left
    view2.addGestureRecognizer(swipeLeft1)
}

func viewSwipped(gesture: UIGestureRecognizer) {
    self.chooseAQuote()
    if let swippedView = gesture.view {
        if swippedView.tag == 1 {
            label1.leftToRightAnimation()
            label1.text = displayString
        } else {
            label2.leftToRightAnimation()
            label2.text = displayString
        }
    }
}

func chooseAQuote() {
    displayString = quotes[whichQuotestoChoose]
    whichQuotestoChoose = Int(arc4random_uniform (84)) 
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

extension UIView {
    func leftToRightAnimation(duration: NSTimeInterval = 0.5, completionDelegate: AnyObject? = nil) {
    // Create a CATransition object
    let leftToRightTransition = CATransition()

    // Set its callback delegate to the completionDelegate that was provided
    if let delegate: AnyObject = completionDelegate {
        leftToRightTransition.delegate = delegate
    }

    leftToRightTransition.type = kCATransitionPush
    leftToRightTransition.subtype = kCATransitionFromRight
    leftToRightTransition.duration = duration
    leftToRightTransition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    leftToRightTransition.fillMode = kCAFillModeRemoved

    // Add the animation to the View's layer
    self.layer.addAnimation(leftToRightTransition, forKey: "leftToRightTransition")
    }
}

enter image description here