小编Eil*_*lon的帖子

在文本属性字典中实例化UIFont时出错

我正在尝试设置UIBarButtonItem类似的字体:

let barButton = UIBarButtonItem.appearance()
barButton.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "AvenirNext", size: 15], forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)

但是它会抛出一个编译错误:

无法使用参数列表类型'($ T7,forState:UIControlState)调用'init'

我不知道这意味着什么.我也试过了

barButton.titleTextAttributesForState(UIControlState.Normal) =[NSFontAttributeName...]` 
Run Code Online (Sandbox Code Playgroud)

但似乎它不可转让

我该如何解决这个问题?

cocoa-touch compiler-errors uibarbuttonitem ios swift

14
推荐指数
1
解决办法
1万
查看次数

SwiftUI macOS 视图工具栏未显示在新窗口中

我的 macOS 应用程序中有以下视图:

struct ViewWithToolbar: View {
    var body: some View {
        Group {
            Text("Hello from ViewWithToolbar!")
                .padding()
        }
        .toolbar {
            Button("Action1") {  }
            Button("Action2") {  }
        }
        .frame(minWidth: 500, minHeight: 400.0)
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在App声明中通过这个视图,一切都会按预期进行。当我尝试在新窗口中呈现此视图时,问题就开始了,如下例所示:

struct RootView: View {
    var body: some View {
        Group {
            Button("Present View with Toolbar") {
                let controller = NSHostingController(rootView: ViewWithToolbar())
                let window = NSWindow(contentViewController: controller)
                window.contentViewController = controller
                window.title = "View with Toolbar"
                window.styleMask = [.titled, .closable, .miniaturizable, .resizable]
                window.makeKeyAndOrderFront(nil)
            }
            .padding() …
Run Code Online (Sandbox Code Playgroud)

macos nswindow ios swift swiftui

7
推荐指数
0
解决办法
827
查看次数

Undestanding UIBezierPath弯曲机制,controlPoint和曲线点

我正在尝试使用简单的抛物线形状UIBezierPath.我有一个maxPoint和一个boundingRect我基于抛物线的宽度和伸展.
下面是我做得出抛物线(我画在容器视图中的抛物线,该功能rectcontainer.bounds):

func addParabolaWithMax(maxPoint: CGPoint, inRect boundingRect: CGRect) {
    let path = UIBezierPath()

    let p1 = CGPointMake(1, CGRectGetMaxY(boundingRect)-1)
    let p3 = CGPointMake(CGRectGetMaxX(boundingRect)-1, CGRectGetMaxY(boundingRect)-1)

    path.moveToPoint(p1)
    path.addQuadCurveToPoint(p3, controlPoint: maxPoint)

    // Drawing code
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我希望maxPoint我在函数中发送的是抛物线本身的实际极端点.例如,如果我发送(CGRectGetMidX(container.bounds), 0),最大点应该在最顶端的中心.但是在使用此特定点的函数时,结果如下:

在此输入图像描述

那么这条道路究竟是什么呢?或者换句话说,我怎样才能从controlPoint我需要的实际最大点到达?我已经尝试根据y值的高度添加和减去值中的不同值boundingRect,但我找不到正确的组合,因为在具有不同y值的不同点中它表现不同.似乎有某种乘数被添加,我该如何解决?

graphics ios uibezierpath swift

4
推荐指数
1
解决办法
6430
查看次数

Facebook SDK登录在iOS 10,Xcode 8上的模拟器上不起作用

我尝试通过Facebook SDK登录系统登录,viewWillAppear如下所示:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    if !loggedIn {
        if let token = FBSDKAccessToken.current() {
            loggedIn = true
            self.accessToken = token
        } else {
            let login = FBSDKLoginButton()
            login.center = view.center
            view.addSubview(login)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

正确真实设备在iOS模拟器10的工作,但最近,使用Xcode中8和斯威夫特3似乎失败.登录按钮正常工作并提示登录和授权页面,但在授权/登录后,令牌(FBSDKAccessToken.current())仍然存在nil.
同样,该问题仅适用于模拟器,使用iOS 10,Xcode 8和Swift 3.

可能是什么问题,我怎样才能让它在模拟器上运行?提前致谢.

xcode facebook ios facebook-login swift

4
推荐指数
1
解决办法
4139
查看次数

访问平移手势的速度

我想获得平移手势的速度,我想使用发送者的速度属性,但它似乎不起作用:

@IBAction func handleGesture(sender: AnyObject) {
    let v = sender.velocity
}
Run Code Online (Sandbox Code Playgroud)

但它抛出一个错误说:

"ambiguous use of 'velocity'"

如果那不是获取平移手势速度的方式,那是什么?

objective-c ios uipangesturerecognizer swift

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