小编Mat*_*ini的帖子

SwiftUI中的活动指示器

尝试在SwiftUI中添加全屏活动指示器。

我可以.overlay(overlay: )View协议中使用功能。

这样,我可以进行任何视图叠加,但是找不到的UIActivityIndicatorView等效于iOS默认样式SwiftUI

如何使用制作默认样式微调框SwiftUI

注意:这与在UIKit框架中添加活动指示器无关。

swift swiftui

24
推荐指数
6
解决办法
6269
查看次数

在SwiftUI ViewBuilder块中切换语句的替代方法?

我一直在尝试使用SwiftUI复制我的应用程序。它有一个RootViewController,根据枚举值,它显示了一个不同的子视图控制器。与在SwiftUI中一样,我们使用视图代替视图控制器,我的代码如下所示:

struct RootView : View {
   @State var containedView: ContainedView = .home

   var body: some View {
      // custom header goes here
      switch containedView {
         case .home: HomeView()
         case .categories: CategoriesView()
         ...
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到警告:

包含控制流语句的闭包不能与function builder一起使用ViewBuilder

因此,是否有其他选择可以切换,以便我可以复制此行为?

swift swiftui

14
推荐指数
5
解决办法
3404
查看次数

Spray.io:无法编译测试规范

我有以下服务:

trait PingService extends MyHttpService {

val pingRoutes =
    path("ping") {
      get {
        complete("message" -> "pong")
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

MyHttpService是一个扩展的自定义类,HttpService只包含实用程序方法.

这是测试规范:

import akka.actor.ActorRefFactory
import org.json4s.{DefaultFormats, Formats}
import org.scalatest.{FreeSpec, Matchers}
import spray.testkit.ScalatestRouteTest

class PingServiceSpec extends FreeSpec with PingService with ScalatestRouteTest with Matchers {

override implicit def actorRefFactory: ActorRefFactory = system

override implicit def json4sFormats: Formats = DefaultFormats

  "Ping service" - {
    "when calling GET /ping" - {
      "should return 'pong'" in {
        Get("/ping") ~> pingRoutes ~> check { …
Run Code Online (Sandbox Code Playgroud)

testing scala akka spray

10
推荐指数
1
解决办法
1472
查看次数

在SwiftUI Modal中禁用拖动以关闭

我已经介绍了一个模式视图,但是我希望用户先经历一些步骤才能将其关闭。当前可以拖动视图以将其关闭。

有没有办法阻止这种可能性?

我已经看过WWDC会议的视频,他们提到了它,但是我似乎没能确切地知道我需要的代码。

struct OnboardingView2 : View {

    @Binding
    var dismissFlag: Bool

    var body: some View {

        VStack {
            Text("Onboarding here! ")
            Button(action: {
                self.dismissFlag.toggle()
            }) {
                Text("Dismiss")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我目前有一些文本和一个按钮,以后会使用它来关闭视图。

swiftui

10
推荐指数
3
解决办法
949
查看次数

什么相当于迅捷的CAGradientLayer?

我正在尝试移植一些创建渐变层的Objective-C代码

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colors;
gradientLayer.locations = locations;
gradientLayer.frame = view.bounds;

[view.layer insertSublayer:gradientLayer atIndex:index];
Run Code Online (Sandbox Code Playgroud)

但是在Swift中,CAGradientLayer似乎没有静态"层"方法或构造函数.尝试将其用作类型会产生:

let a:CAGradientLayer? = null
Run Code Online (Sandbox Code Playgroud)

错误:使用模块"CAGradientLayer"作为类型

据我所知,CAGradientLayer不是我可以导入的模块.在Swift中执行渐变图层的正确方法是什么?

core-animation ios swift ios8

9
推荐指数
1
解决办法
3352
查看次数

SwiftUI-列表中的两个按钮

我在列表中有两个按钮,在点击时,列表项的整个区域都会突出显示。有没有办法将两个按钮分开?

在这种情况下,我有一个“操作”按钮和一个“信息”按钮:

在此处输入图片说明

我发现了这个问题,但没有直接解决方案。

这是代码:

var body: some View {
    HStack {
        Text(control.name)
        Spacer()
        Button(action: {
            print("action")
        }) {
            Text("Action")
            }
            .frame(width: 250 - 10)
            .padding(5)
            .background(Color(white: 0.9))
            .cornerRadius(10)
            .frame(width: 250)
        Group {
            Button(action: {
                print("action")
            }) {
                Image(systemName: "info.circle")
                    .foregroundColor(.accentColor)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

9
推荐指数
2
解决办法
1657
查看次数

Swift中的UTTypeCreatePreferredIdentifierForTag和CFStringRef

import Foundation
import MobileCoreServices

func checkFileExtension(fileName: NSString){
    println(fileName)

    var fileExtension:CFStringRef = fileName.pathExtension

    println(fileExtension)

    var fileUTI:CFStringRef = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, nil)

    println(fileUTI)

    let testBool = UTTypeConformsTo(fileUTI, kUTTypeImage) != 0

    if  testBool{
        println("image")
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

错误:'Unmanaged'不能转换为'CFStringRef'

在线

var fileUTI:CFStringRef = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,fileExtension,nil)

有任何想法吗 ??谢谢

swift ios8

8
推荐指数
1
解决办法
7210
查看次数

NSCollectionView数据源无法正常工作

我正在尝试NSCollectionView 在El Capitan中引入的新API.

在WWDC视频之后,我创建了一个子类NSCollectionViewFlowLayout来确定集合视图的布局.

class Layout : NSCollectionViewFlowLayout {

  override func prepareLayout() {

    super.prepareLayout()

    self.minimumInteritemSpacing = 0
    self.minimumLineSpacing = 0

    let cheight = self.collectionView!.bounds.height
    let cwidth = self.collectionView!.bounds.width

    self.itemSize = CGSizeMake(cwidth / 2.0, cheight / 6.0)

  }

}
Run Code Online (Sandbox Code Playgroud)

之后,我创建了一个NSObject子类作为数据源.

class DataSource : NSObject, NSCollectionViewDataSource {

  func collectionView(collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
    return 5
  }

  func collectionView(collectionView: NSCollectionView, itemForRepresentedObjectAtIndexPath indexPath: NSIndexPath) -> NSCollectionViewItem {

    /* DOESN'T GET CALLED! */

    let item = collectionView.makeItemWithIdentifier("cell", …
Run Code Online (Sandbox Code Playgroud)

macos cocoa swift

8
推荐指数
1
解决办法
2606
查看次数

在SwiftUI中创建NumberPad

我正在尝试TextField使用数字键盘类型创建一个,但是找不到任何方法。

我看过苹果的文档,没有运气。

谢谢!

xcode ios swiftui

8
推荐指数
0
解决办法
188
查看次数

在地图上显示用户位置 SwiftUI

我正在尝试加载地图并在用户位置上显示初始位置,并使用 SwiftUI 在地图上显示用户的位置。我不知道如何在 SwiftUI 中做到这一点。

我试图将 'view.showsUserLocation = true' 放在 updateUIView 函数中,但它不起作用。

import SwiftUI
import MapKit
struct MapView : UIViewRepresentable {
    func makeUIView(context: Context) -> MKMapView {
        MKMapView(frame: .zero)
    }

    func updateUIView(_ view: MKMapView, context: Context) {
        view.showsUserLocation = true
        let coordinate = CLLocationCoordinate2D(
            latitude: 34.011286, longitude: -116.166868)
        let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)

        let region = MKCoordinateRegion(center: view.userLocation.location?.coordinate ?? coordinate, span: span)
        view.setRegion(region, animated: true)
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试打印它时,该位置为零。

mapkit swift swiftui

8
推荐指数
1
解决办法
8370
查看次数

标签 统计

swift ×7

swiftui ×6

ios ×2

ios8 ×2

akka ×1

cocoa ×1

core-animation ×1

macos ×1

mapkit ×1

scala ×1

spray ×1

testing ×1

xcode ×1