小编Shi*_*thi的帖子

更改UISearchBar的字体大小

如何更改字体大小UISearchBar

编辑:
答案

for(int i =0; i<[searchbar.subviews count]; i++) {
        if([[searchbar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]])
            [(UITextField*)[searchbar.subviews objectAtIndex:i] setFont:[UIFont fontWithName:@"Helvetica" size:12]];
    }
Run Code Online (Sandbox Code Playgroud)

谢谢
Pankaj

objective-c uisearchbar uifont ios

46
推荐指数
9
解决办法
3万
查看次数

GoogleToolboxForMac和GoogleOpenSource.framework之间的冲突都包含GTMLogger文件

我收到错误:

  • ld:23个用于架构arm64的重复符号

&重复符号可在以下位置找到:

  • 重复符号_OBJC_METACLASS _ $ _ GTMLogAllowedLevelFilter in:/Users/kabloom/Library/Developer/Xcode/DerivedData/KaBloom-atezfibugqdtnobedrrypbagrnmn/Build/Products/Debug-iphoneos/GoogleToolboxForMac/libGoogleToolboxForMac.a(GTMLogger.o)/ Users/kabloom/Documents/Kabloom/Proj/Current Project/KaBloom Prakash/GoogleOpenSource.framework/GoogleOpenSource(GTMLogger.o)

    我正在使用最新的firebase sdk 4.8.2.我在google论坛上阅读了很多关于类似问题的内容,此处有关堆栈溢出的答案很少,但无法解决问题.

duplicate-symbol google-toolbox-for-mac ios google-signin firebase-cloud-messaging

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

您的应用程序在连接到IPv6网络的运行iOS 11.2.5的iPad或iPhone上崩溃,但为什么?

使用此消息拒绝的应用程序版本之一您的应用程序在连接到IPv6网络的运行iOS 11.2.5的iPad或iPhone上崩溃.问题是应用程序没有单一的网络功能或功能,所以我无法理解发生了什么.

这是应用程序的第4版,旧版本已经存储.在最后一个版本中,我们刚刚删除了一个问题,导致应用程序在新的iOS版本中失败文本.

ipv6 ios

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

swift如何获得Stripe令牌?

我想实现Stripe Payment网关。并且需要生成令牌并将其传递给后端。

private func getToken(){
        let cardParams = STPCardParams()
        cardParams.number = paymentCardTextField?.cardNumber
        cardParams.expMonth = (paymentCardTextField?.expirationMonth)!
        cardParams.expYear = (paymentCardTextField?.expirationYear)!
        cardParams.cvc = paymentCardTextField?.cvc
        STPAPIClient.shared().createToken(withCard: cardParams) { (token: STPToken?, error: Error?) in
            guard let token = token, error == nil else {
                // Present error to user...
                return
            }
            self.dictPayData["stripe_token"] = token.tokenId
            print(self.dictPayData)


        }
    }
Run Code Online (Sandbox Code Playgroud)

ios stripe-payments swift

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

RestoreCompletedTransactions() 没有调用 paymentQueue UpdatedTransactions?

我在 Swift 4/iOS 11 中恢复 IAP 时遇到问题。我的AppDelegate实现SKPaymentTransactionObserver. AppDelegate我正在didFinishLaunchingWithOptions打电话SKPaymentQueue.default().add(self)。我paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])也在 AppDelegate 中实现了该功能。

我可以ViewController像这样进行购买:

let payment = SKPayment(product: products.first!)
SKPaymentQueue.default().add(payment)
Run Code Online (Sandbox Code Playgroud)

购买成功完成 - 我在观察者中得到了updatedTransactionwith 状态。.purchasedpaymentQueue

但是,当我从中调用以下内容ViewController以恢复购买时:

SKPaymentQueue.default().restoreCompletedTransactions()
Run Code Online (Sandbox Code Playgroud)

paymentQueue updatedTransactions函数从未被调用。

看来我的沙箱用户等设置正确,因为初始购买正在运行。沙盒用户有能力恢复购买吗?restoreCompletedTransactions()除了打电话恢复购买之外,我还需要做任何额外的工作吗?


更新,这是我的paymentQueue updatedTransactions代码AppDelegate

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions{
        switch transaction.transactionState{
        case .purchased:
            debugPrint("purchased it!")
            menuDelegate?.unlockMenu()
            //unlock …
Run Code Online (Sandbox Code Playgroud)

in-app-purchase ios swift skpaymenttransaction

6
推荐指数
0
解决办法
1633
查看次数

WKWebView操作表在被解雇后解除显示视图控制器

我有一个嵌入在NavigationController中的视图控制器(WKWebViewController).这个ViewController提供了一个WKWebView.导航到任何网页后; 并且在长按任何检测到的内容(例如电话号码或链接)时,会显示一个操作表,其中包含复制,共享等选项.问题是当此操作表被取消时,WKWebViewController将被解除,并且显示根ViewController!无论选择是什么,它都可以复制,取消,甚至可以点击屏幕上的任何位置.

我已经尝试重写" 现在(_ viewControllerToPresent:UIViewController,动画标志:Bool,完成:(( - ) - > Void)?= nil) "和" dismiss(动画标志:Bool,完成:(() - > Void)?) "试图理解发生了什么,但后来意识到动作表没有呈现,也没有被其父视图控制器(WKWebViewController)解雇,事实上我在根视图控制器上做了同样的事情,发现它也没有呈现在它上面.

我已经做了很多搜索,试图了解是什么导致了这种行为,我甚至用一个简单的WKWebView构建了一个新项目,并且总是遇到同样的问题.

这是代码:

import UIKit; import WebKit
class WKWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {

var destinationUrlString: String?
var myWebView: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    let webConfiguration = WKWebViewConfiguration()
    webConfiguration.dataDetectorTypes = []
    let origin = CGPoint(x: 0, y: 0)
    let size  = CGSize(width: view.frame.size.width, height: view.frame.size.height)
    myWebView = WKWebView(frame: .init(origin: origin, size: size), configuration: webConfiguration)
    myWebView.uiDelegate = self
    myWebView.navigationDelegate = self
    myWebView.allowsLinkPreview = false
    view …
Run Code Online (Sandbox Code Playgroud)

ios swift wkwebview

6
推荐指数
2
解决办法
2002
查看次数

没有从firebase接收推送通知

我检查了我的配置文件,一切都很好,因为我在firebase提供的演示中使用了配置文件,我正在接收来自该演示项目的推送通知.问题是在我使用的主要项目中:

  • 与演示项目相同的代码.
  • 相同的配置文件.
  • 相同的.plist文件.
  • 具有相同版本的相同pod.

我仍然无法在我的项目中收到推送通知.让我知道我在哪里错过了什么.

push-notification ios firebase-cloud-messaging

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

CoreData是Swift中必需的setValue(_:forKey :)吗?

在CoreData中更新实体时,是否需要使用setValue(_:forKey:),或者您可以使用默认的setter设置值?

someEntity.setValue("Bob", forKey: "Name")

someEntity.name = "Bob"

第一种方法触发KVC,第二种方法不触发(正确?).

接受的答案确认上述内容不正确.默认情况下,@ NSManaged在Swift属性上启用KVC.

那么托管对象上下文是否无法识别更改?使用默认的setter有什么缺点吗?我在任何文档中都找不到明确的答案.我的测试显示它工作得很好,但有些东西我不知道将来会再次咬我吗?

我在任何文档中找到的最接近的答案来自使用Swift的Key-Value Coding下的Key-Value Coding Programming Guide

从NSObject或其子类之一继承的Swift对象默认情况下是符合其属性的键值编码.而在Objective-C中,属性的访问器和实例变量必须遵循某些模式,Swift中的标准属性声明会自动保证这一点.

core-data ios swift

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

Swift 导航栏颜色

是否可以为导航层次结构中的单个视图控制器设置导航栏颜色?让默认的导航栏颜色为红色,行中的最后一个视图控制器应该是蓝色的。我使用这两行来为所述视图控制器的导航栏着色:

navigationController?.navigationBar.barTintColor = .blue
navigationController?.navigationBar.tintColor = .white
Run Code Online (Sandbox Code Playgroud)

但是当返回时(例如按下后退按钮),导航栏保持蓝色。使用上面的代码将颜色设置回红色不会做任何事情。

uinavigationbar ios swift

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

如何设置每次重复显示不同内容的每日通知?

我正在开发一款可以在中午向您发送通知的应用程序。这个通知应该每天都不同。

我得到了通知本身的工作:

let notificationOptions: UNAuthorizationOptions = [.alert, .sound];
UNUserNotificationCenter.current().requestAuthorization(options: notificationOptions) { (granted, error) in
    if !granted {
        print("Something went wrong")
    } else {
        let content = UNMutableNotificationContent()
        content.body = getRandomDailyString()
        content.sound = UNNotificationSound.default()

        let date = DateComponents(hour: 12, minute: 15)
        let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)

        let request = UNNotificationRequest(identifier: "Daily String", content: content, trigger: trigger)
        UNUserNotificationCenter.current().add(request) { (error) in
            if let error = error {
                print(error.localizedDescription)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在发生的情况是调用getRandomDailyString()函数,它返回一个字符串,并设置一个重复通知,该通知确实出现在指定时间,但始终具有相同的内容。

我该如何制作每天提供独特内容的通知?

ios uilocalnotification swift

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