小编Dav*_*eek的帖子

Swift/cornerRadius和masksToBounds让UIImageView消失

我有UITableViewController一个UIImageView.内容加载以下简单代码.

@IBOutlet weak var avatarImageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    updateUI()
}

func updateUI() {

    backendless.userService.currentUser.retrieveProperties()

    avatarImageView.layer.cornerRadius = avatarImageView.frame.size.width/2
    avatarImageView.layer.masksToBounds = true

    let imgURL = NSURL(string: (backendless.userService.currentUser.getProperty("Avatar") as? String)!)
    avatarImageView.sd_setImageWithURL(imgURL)

    tableView.reloadData()

}
Run Code Online (Sandbox Code Playgroud)

ImageView不会出现.

但是如果我删除以下代码,UIImageView将被正确设置和显示.

avatarImageView.layer.cornerRadius = avatarImageView.frame.size.width/2
avatarImageView.layer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)

我错过了什么?非常感谢帮助:

PS:

Xcode 8.0

斯威夫特2.3

ImageView的Contrains设置为120*120

sd_setImageWithURL = pod 'SDWebImage'

在此输入图像描述

ios swift

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

如何从Swift中的相机或照片库加载图像

如何使用相机拍照或从照片库中选择图像以便能够在imageView中显示?

任何有关这方面的帮助将不胜感激.

photo uiimageview uiimage ios swift

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

Swift / 如何使用 popViewController 调用委托

我已经从下到上阅读了这个线程(以及类似的其他线程),但它根本不符合我的需求。

我在一个UIViewController里面UIPageViewController有一个UINavigationController. 导航到第二个 ViewController。导航到第 3 个 ViewController 并希望返回到第 2 个传递数据的 ViewController。

我目前的代码:

protocol PassClubDelegate {
            func passClub(passedClub: Club)
        }

class My3rdVC: UIViewController {

        var clubs: [Club] = []

        var passClubDelegate: PassClubDelegate?

....

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        let club = clubs[indexPath.row]
        self.passClubDelegate?.passClub(club)
        navigationController?.popViewControllerAnimated(true)
    }
Run Code Online (Sandbox Code Playgroud)

我的第二个 VC:

class My2ndVC: UIViewController, PassClubDelegate {

    var club = Club()

    func passClub(passedClub: Club) {

        SpeedLog.print("passClub called \(passedClub)")
        club = passedClub
    }
Run Code Online (Sandbox Code Playgroud)

passClub不叫。我确定这是因为我没有将委托设置为 …

ios swift

2
推荐指数
1
解决办法
4624
查看次数

如何将textField.text值转换为Integer并将两个整数相加

永远不会使用不可变值'textfieldInt'的初始化; 考虑将赋值替换为'_'或删除它和textfield2Int

我为textfieldInt收到两次警告

这是我的所有代码:

class ViewController: UIViewController {

    @IBOutlet weak var textField1: UITextField!
    @IBOutlet weak var textField2: UITextField!
    @IBOutlet weak var output: UILabel!

    @IBAction func calculate(_ sender: AnyObject) {
        let textfieldInt: Int? = Int(textField1.text!)
        let textfield2Int: Int? = Int(textField2.text!)
        let convert = textField1.text! + textField2.text!
        let convertText = String(convert)
        output.text = convertText

}
Run Code Online (Sandbox Code Playgroud)

macos xcode calculator swift xcode7

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

如何检查当前UIViewController是否是UINavigationController的一部分

在我的应用程序的UIViewController" ProfilVC"是的一部分UINavigationController" nav".

但在另一个场景中,我正在呈现 " ProfilVC"以重复使用相同UIViewController但具有不同数据.

let vc = tweetsStb.instantiateViewController(withIdentifier: "ProfilVC") as! ProfilVC
self.present(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

在内didSelectRowAt,我提出另一个UIViewController.在这里,我需要检查if self(ProfilVC)当前是其中的一部分nav还是呈现在顶部.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let vc = tweetsStb.instantiateViewController(withIdentifier: "TweetCommentsVC") as! TweetCommentsVC
    let post = tweets[(indexPath as NSIndexPath).section]
    let cell = tableView.cellForRow(at: indexPath) as! TweetPostCell
    vc.commentCounterString = cell.commentLabel.text!
    vc.post = post
    vc.avatare = avatare
    nav?.present(vc, animated: true, …
Run Code Online (Sandbox Code Playgroud)

ios swift

2
推荐指数
1
解决办法
516
查看次数

如何在Swift 3中将函数设置为函数参数

:是否可以在Swift 3中将函数作为函数参数传递?

要重构我的代码,我希望有一个全局函数.在此函数的末尾,有一个带有action参数的自定义按钮.

let deleteButton = MIAlertController.Button(title: "cancel", 
                                            type: .cancel, 
                                            config: getDestructiveButtonConfig(),
                                            action: {
                                                print("completed")
                                            })
Run Code Online (Sandbox Code Playgroud)

我想做的是,设置一个函数作为参数的全局函数.

MyGlobalStuff.swift
...
func getButton(_ myFunc: func, _ title: String) {
    let deleteButton = MIAlertController.Button(title: title, 
                                            type: .cancel, 
                                            config: getDestructiveButtonConfig(),
                                            action: {
                                                myFunc // call here the function pass by argument
                                            })
}
Run Code Online (Sandbox Code Playgroud)

getButton(..)在同一个Class中使用传递的函数调用.

MyViewController.swift
...
getButton(myPrintFunc, "cancel")

func myPrintFunc() {
        print("completed")
}
Run Code Online (Sandbox Code Playgroud)

有可能吗?非常感谢帮助.

swift

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

如何在 Swift 3 中定义 MPMediaItemPropertyArtwork

此代码工作正常:

func setInfoCenterCredentials(_ artist: String, _ title: String, _ image: UIImage) {
    let mpic = MPNowPlayingInfoCenter.default()        
    let albumArt = MPMediaItemArtwork(image: image)
    mpic.nowPlayingInfo = [MPMediaItemPropertyTitle: title,
                           MPMediaItemPropertyArtist: artist,
                           MPMediaItemPropertyArtwork: albumArt]
}
Run Code Online (Sandbox Code Playgroud)

但是 Xcode 抱怨 : let albumArt = MPMediaItemArtwork(image: image),

'init(image:)' 在 iOS 10.0 中被弃用

我试图只是把imageas MPMediaItemPropertyArtwork: image,但这会导致崩溃。

如何为 iOS 10.0 正确设置?非常感谢帮助。

编辑:是的。我在文档中找到了该部分:

init(boundsSize: CGSize, requestHandler: @escaping (CGSize) -> UIImage)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用它。

ios swift

2
推荐指数
1
解决办法
2249
查看次数

如何形成与未定义元素匹配的 Firestore 查询

我正在尝试使用 Firebase 的 Firestore 执行以下查询:

async function getTicketNumbers(companyID) {

    var ticketNumbers = []

    const docs = await store
        .collection('ABC')
        .doc(companyID)
        .collection('DEF')
        .where('ticketStatus', 'in', ['scheduled', undefined])
        .get()

    if (docs) {
        docs.forEach(doc => {
            ticketNumbers.push(doc.id)
        })
    }

    return ticketNumbers
}
Run Code Online (Sandbox Code Playgroud)

我的代码中的问题是undefined关键字。但是如何执行查询 where TicketStatusisscheduledundefined

我也试过null和空字符串'',什么不会导致错误,但不返回额外的文件。任何帮助都受到高度赞赏。

firebase google-cloud-firestore

2
推荐指数
1
解决办法
1119
查看次数

如何在Swift中将Label与ImageView居中对齐?

我正在尝试将动态内容与UIImageView相邻UILabel。都在一个内StackView

在此处输入图片说明

目前,我正在使用“ Fill对齐和分布”。它更改为其他选项之一,改变的大小ImageView(固定约束〜30×)。该StackView离开和领导权的约束0

这是我目前的情况:

在此处输入图片说明

这就是我想要的:

在此处输入图片说明

我如何设置StackView来归档目标?非常感谢您的帮助。

ios swift

0
推荐指数
1
解决办法
1663
查看次数

CallKit - 如何将CXCallController带到前面

我正在创建一个VOIP应用程序.大多数逻辑类似于Raywenderlich教程.

我的问题是,在接受呼叫后,CXCallController它不在应用程序之上,而是在"任务管理器"旁边:

在此输入图像描述

问题是,一旦你接受了呼叫,CXCallController它不是最顶层的控制器,而是实际的应用程序.所以你不能说这个电话正在发生.并执行有关呼叫的操作 - 例如挂断,保持,静音,您将不得不通过任务管理器打开CXCallController.用户不太友好.

CXCallController用户接听电话后如何将其置于前面?

在用户接听电话后调用的提供者代理:

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {

    guard let call = callManager.getCall(with: action.callUUID) else {
        action.fail()
        return
    }

    configureAudioSession()
    self.incommingCall = call
    action.fulfill()
}
Run Code Online (Sandbox Code Playgroud)

创建音频会话后的回调:

func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {

    incommingCall?.answerCall(with: audioSession) { success in

        if success {
            self.incommingCall?.startAudio()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用TokBox VOIP服务启动调用逻辑:

func answerCall(with audioSession: AVAudioSession, completion: ((_ success: Bool) -> Void)?) {

    OTAudioDeviceManager.setAudioDevice(OTDefaultAudioDevice.sharedInstance(with: audioSession))
    if session == …
Run Code Online (Sandbox Code Playgroud)

tokbox swift callkit

0
推荐指数
1
解决办法
894
查看次数