小编Zol*_*tan的帖子

循环中的快速延迟

我有这个延迟功能:

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
           DISPATCH_TIME_NOW,
           Int64(delay * Double(NSEC_PER_SEC))
    ),
    dispatch_get_main_queue(), closure)
}
Run Code Online (Sandbox Code Playgroud)

从这里: dispatch_after - GCD在swift?

这段代码:

func start(){
   for index in 1...3 {
      delay(3.0){
         println(index)
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

3秒后,它给出:

3

3

3

我的目标:

3秒后:1

6秒后:2

9秒后:3

我该如何实现这一目标?谢谢,

loops delay ios swift

7
推荐指数
1
解决办法
2460
查看次数

通过 API 向 Google 电子表格添加多行

我可以使用以下代码向 Google 电子表格添加新行:

$valueRange = new Google_Service_Sheets_ValueRange();
$valueRange->setValues(["values" => ['data1', 'data2']]);
$range = 'Sheet1!A1:A';
$conf = ["valueInputOption" => "USER_ENTERED"];
$service->spreadsheets_values->append($spreadsheetId, $range, $valueRange, $conf);
Run Code Online (Sandbox Code Playgroud)

我应该如何更改 setValues 参数以添加多行?

谢谢你。

更新

同时我使用这种方法:

$range_number = 1; // Keep spreadsheet header
$data = array();
for($i=0;$i<count($data);$i++){
    $range_number++;
    $range = 'Sheet1!A'.$range_number.':XX';
    $values = array( array($data1[$i], $data2[$i], $data3[$i]) );
    $data[] = new Google_Service_Sheets_ValueRange(
        array( 'range' => $range, 'values' => $values )
    );
}
$body = new Google_Service_Sheets_BatchUpdateValuesRequest(array(
  'valueInputOption' => "USER_ENTERED",
  'data' => $data
));
$result = $service->spreadsheets_values->batchUpdate($spreadsheetId, $body); …
Run Code Online (Sandbox Code Playgroud)

php google-spreadsheet-api

5
推荐指数
1
解决办法
4704
查看次数

检测用户是否按下@登录pygame

如何检测用户是否在pygame中按下@符号?

在某些键盘上我需要按SHIFT + 2,在其他键盘上按ALT + V等.

这有效:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_RETURN:
        print("ENTER key pressed")
Run Code Online (Sandbox Code Playgroud)

这不是:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_AT:
        print("@ sign pressed")
Run Code Online (Sandbox Code Playgroud)

这仅适用于一种类型的键盘:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_2:
        if pygame.key.get_mods() & pygame.KMOD_SHIFT:
            print("@ sign pressed")
Run Code Online (Sandbox Code Playgroud)

那么如何在不知道他们使用的键盘类型的情况下检测用户是否可以检测到?

谢谢您的帮助.

python pygame python-3.x

5
推荐指数
1
解决办法
77
查看次数

从 ContainerView 到父 ViewController 的委托

我有以下设置:

StartViewController 有一个包含 ContainerViewController 的 ContainerView

在 ContainerViewController 中执行任务后,我尝试找到一种在 StartViewController 中隐藏元素的方法。

为此,我尝试使用这样的委托方法:

开始视图控制器

class StartViewController: UIViewController, showBannerAdDelegate {

    @IBOutlet weak var bannerView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        bannerView.hidden = false
    }

    func bannerAdHidden(status: Bool) {
        bannerView.hidden = status
    }

}
Run Code Online (Sandbox Code Playgroud)

容器视图控制器

protocol showBannerAdDelegate: class {
    func bannerAdHidden(status: Bool)
}

class ContainerViewController: UIViewController {

    weak var delegate: showBannerAdDelegate! = nil

    @IBAction func buttonPressed(sender: UIButton) {
        delegate.bannerAdHidden(true)
    }

}
Run Code Online (Sandbox Code Playgroud)

如果我展示了 ContainerViewController 我可以在 prepareForSegue 中做

let destination = segue.destinationViewController as! ContainerViewController
destination.delegate …
Run Code Online (Sandbox Code Playgroud)

delegation ios swift

3
推荐指数
1
解决办法
449
查看次数