UIControls example

iOS REPL with Swifter.jl + AppConsole

  • open AppConsole/Demo/UIControls/UIControls.xcworkspace
// part of ViewController.swift
class ViewController: UIViewController {

    @IBOutlet var label: UILabel!
    @IBOutlet var textField: UITextField!
    @IBOutlet var button: UIButton!
    @IBOutlet var switch_: UISwitch!
    @IBOutlet var segmentedControl: UISegmentedControl!
    @IBOutlet var slider: UISlider!
    @IBOutlet var progressView: UIProgressView!

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

        label.text = AppConsole(initial: self).run()
    }

    ...
  • Run

In [1]:
using Swifter

In [2]:
vc = initial("http://localhost:8080")


Out[2]:
<UIControls.ViewController: 0x7ff113599d90>

In [3]:
@query vc.view


Out[3]:
<UIView: 0x7ff1135bdd70; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff1135bdee0>>


In [4]:
@query vc.label.text = "Hello Swift"


Out[4]:
Hello Swift

In [5]:
@query vc.textField.text = "Hello Julia"


Out[5]:
Hello Julia

In [6]:
@query vc.textField


Out[6]:
<UITextField: 0x7ff1135a7230; frame = (13 171; 282 30); text = 'Hello Julia'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7ff11365c250>; layer = <CALayer: 0x7ff1135a70c0>>


In [7]:
@query vc.button


Out[7]:
<UIButton: 0x7ff1136527e0; frame = (13 238; 99 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff11364d4d0>>


In [8]:
@query vc.button.tap()


Out[8]:

In [9]:
@query vc.switch_


Out[9]:
<UISwitch: 0x7ff1135aaaa0; frame = (246 237; 51 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135a67b0>>


In [10]:
@query vc.switch_.tap()


Out[10]:

In [11]:
@query vc.switch_


Out[11]:
<UISwitch: 0x7ff1135aaaa0; frame = (246 237; 51 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135a67b0>>


In [12]:
@query vc.segmentedControl


Out[12]:
<UISegmentedControl: 0x7ff113653f50; frame = (13 316; 282 29); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff113400af0>>


In [13]:
@query vc.segmentedControl.tap(title: "Second")


Out[13]:

In [14]:
@query vc.segmentedControl


Out[14]:
<UISegmentedControl: 0x7ff113653f50; frame = (13 316; 282 29); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff113400af0>>


In [15]:
@query vc.segmentedControl.tap(index: 2)


Out[15]:

In [16]:
@query vc.segmentedControl


Out[16]:
<UISegmentedControl: 0x7ff113653f50; frame = (13 316; 282 29); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff113400af0>>


In [17]:
@query vc.slider


Out[17]:
<UISlider: 0x7ff11365ca80; frame = (29 377; 268 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135b86c0>; value: 0.500000>


In [18]:
@query vc.slider.tap(value: 1)


Out[18]:

In [19]:
@query vc.slider


Out[19]:
<UISlider: 0x7ff11365ca80; frame = (29 377; 268 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135b86c0>; value: 1.000000>


In [20]:
@query vc.progressView


Out[20]:
<UIProgressView: 0x7ff1135b7180; frame = (31 444; 264 2); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135b7380>>


In [21]:
@query vc.progressView.setProgress(1, animated: true)


Out[21]:

In [22]:
@query vc.progressView


Out[22]:
<UIProgressView: 0x7ff1135b7180; frame = (31 444; 264 2); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135b7380>>


In [23]:
@query vc.view.subviews


Out[23]:
  • <UILabel: 0x7ff1135b8b80; frame = (13 89; 282 57); text = 'Hello Swift'; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7ff1135b8f30>>
  • <UIButton: 0x7ff1136527e0; frame = (13 238; 99 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff11364d4d0>>
  • <UITextField: 0x7ff1135a7230; frame = (13 171; 282 30); text = 'Hello Julia'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7ff11365c250>; layer = <CALayer: 0x7ff1135a70c0>>
  • <UISlider: 0x7ff11365ca80; frame = (29 377; 268 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135b86c0>; value: 1.000000>
  • <UIProgressView: 0x7ff1135b7180; frame = (31 444; 264 2); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135b7380>>
  • <UISegmentedControl: 0x7ff113653f50; frame = (13 316; 282 29); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff113400af0>>
  • <UISwitch: 0x7ff1135aaaa0; frame = (246 237; 51 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7ff1135a67b0>>
  • <_UILayoutGuide: 0x7ff1135bbaf0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7ff1135bdfa0>>
  • <_UILayoutGuide: 0x7ff1135bd910; frame = (0 568; 0 0); hidden = YES; layer = <CALayer: 0x7ff1135bdaa0>>

In [24]:
ENV["SWIFTER_SAVE_IMAGE"] = false


Out[24]:
false