小编Aam*_*irR的帖子

什么是配置对象时`UIControlState()`和`UIControlState.normal`之间的区别

我经常看到UIControlState.normal用过,例如设置一个将在所有控制状态中使用titleColorUIButton对象,正如UIButton. setTitleColor文档所说:

通常,如果未为状态指定属性,则默认使用正常值.如果未设置正常值,则属性默认为系统值.因此,您至少应该设置正常状态的值.

但我也发现UIControlState.init()被使用,例如以下行:

UIButton.setTitleColor(UIColor, for: UIControlState())
Run Code Online (Sandbox Code Playgroud)

想知道它有何不同,提前谢谢!

uibutton ios uicontrolstate swift

12
推荐指数
1
解决办法
1907
查看次数

Swift(iOS)中带占位符和多个支持的动态字符串

我是Swift和iOS编程的新手,我在Swift中遇到了一个关于带有占位符和多元支持的动态字符串的问题

例如,如果您有一个多语言应用程序,并且不想硬编码字符串和标签和消息等...

我可以在Android中轻松地使用以下代码在不同文件夹中的XML文件中执行此操作,其中android设备将根据当前区域设置查找字符串:

<string name="name">You have %2$d new messages.</string>
<plurals name="name">
    <item quantity="one">You have a new message.</item>
    <item quantity="other">You have %2$d new messages.</item>
</plurals>
Run Code Online (Sandbox Code Playgroud)

借助上述XML和以下Java:

res.getString(R.string.name, mailCount)

res.getQuantityString(R.plurals.name, mailCount, mailCount)
Run Code Online (Sandbox Code Playgroud)

这项工作是在Android中完成的,我正在寻找与Swift(iOS)相对应的解决方案

ios swift

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

如何使用 Swift 将 Mapbox 缩放到给定半径(以公里为单位)?

我最近从旧版 Mapbox SDK(版本 1.6)更新到最新的 Mapbox iOS SDK 3.x。

在新版本中,我无法弄清楚如何将 Mapbox MGLMapView 缩放到给定的半径(以公里为单位)以适合屏幕。

在旧版本(版本 1.6)中,RMMapView.zoomWithLatitudeLongitudeBoundsSouthWest方法的工作如下:

func centerAndZoom(center: CLLocationCoordinate2D, kilometers: Float) {
    let meters = Double(kilometers * 1000)
    let region = MKCoordinateRegionMakeWithDistance(center, meters / 2, meters / 2);

    let northEastLat = center.latitude - (region.span.latitudeDelta / 2);
    let northEastLon = center.longitude + (region.span.longitudeDelta / 2);
    let northEast = CLLocationCoordinate2D(latitude: northEastLat, longitude: northEastLon)

    let southEastLat = center.latitude + (region.span.latitudeDelta  / 2);
    let southEastLon = center.longitude - (region.span.longitudeDelta / 2);
    let southEast = …
Run Code Online (Sandbox Code Playgroud)

ios mapbox swift

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

iOS - 具有群集的Mapbox,MGLSymbolStyleLayer不显示自定义图像

我正在使用这个ios-sdk-examples> ClusteringExample来聚类标记,除了这个例子,我需要为每个标记显示不同的UIImages(意味着每个标记都有自己的UIImage),我试过以下:

let source = MGLShapeSource(identifier: "clusteredPorts", features: self.features, options: [.clustered: true, .clusterRadius: 22])
style.addSource(source)

// remoteImages is an array of tuple [(image: UIImage, key: String)]
remoteImages.forEach { item in
    mapView.style!.setImage(item.image, forName: item.key)
    let layer = MGLSymbolStyleLayer(identifier: item.key, source: source)
    layer.iconImageName = MGLStyleValue(rawValue: item.key as NSString)
    layer.predicate = NSPredicate(format: "%K != YES", "cluster")
    style.addLayer(layer)
}
Run Code Online (Sandbox Code Playgroud)

但是上面的代码显示了所有非聚集标记的单个UIImage(附带截图),我需要指定这些自定义图像的任何想法吗?

Update-1: self.features是一个数组[MGLPointFeature],每个数组MGLPointFeature只有以下内容:

let feature = MGLPointFeature()
feature.coordinate = CLLocationCoordinate2D(latitude: LatValue, longitude: LngValue)
feature.attributes = ["id": IntegerValue]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ios mapbox swift

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

为什么Int.random()比arc4random_uniform()慢?

我已经使用Int.random()方法和arc4random_uniform()进行了数字生成速度测试。
两项测试均在macOS控制台中运行,并将构建配置设置为release。以下是我用于测试的代码。

public func randomGen1() {
    let n = 1_000_000
    let startTime = CFAbsoluteTimeGetCurrent()
    for i in 0..<n {
        _ = arc4random_uniform(10)
    }
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    print(timeElapsed)
}
public func randomGen2() {
    let n = 1_000_000
    let startTime = CFAbsoluteTimeGetCurrent()
    for i in 0..<n {
        _ = Int.random(in: 0..<10)
    }
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    print(timeElapsed)
}
Run Code Online (Sandbox Code Playgroud)

我得到的时间是
0.029475092887878418(用于arc4random_uniform(10))
0.20298802852630615(用于Int.random(in:0 .. <10))

为什么Int.random()这么慢?
有没有优化的方法?
有没有更快的方法快速生成随机数?

random swift

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

Javascript complex One-liner if语句

第一次看到这样的三元表达式:

var somevar = b1 ? b2 ? b3 : b4 : b5 ? b6 : b7 ? b8 : b9 ? b10 : b11
Run Code Online (Sandbox Code Playgroud)

很难理解并将其转换为:

if (b1) {
} else if (bx) {
}
Run Code Online (Sandbox Code Playgroud)

我到处寻找,似乎无法找到答案.

javascript

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

如何以编程方式设置iPhone键盘以显示所需的键集

我正在编写一个iPhone应用程序,我想要一个文本字段,用户可以在键盘中添加数字并即时添加它们,即用户可能输入"1.5 + 2.4 + 6.3 + .063"并且当用户键入其他内容时数字和加号立即显示总数.

问题是123在用户键入+号后开始并将键盘保持在模式中(使用电子邮件键盘,因为它在同一视图上有数字和加号).

如何在_123屏幕上启动电子邮件键盘并将其保留在那里?

谢谢!麦克风

iphone xcode ios uikeyboardtype iphone-keypad

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

在UIView上围绕一个圆圈获取N个CGPoints

我得到了一个中心CGPoint和半径Float,我需要在圆圈周围得到N个点,例如在下面的图像中如何得到12个点对应的红点.

在此输入图像描述

这是我不完整的功能:

func getCirclePoints(centerPoint point: CGPoint, and radius: CGFloat, n: Int) [CGPoint] {
    let result: [CGPoint] = stride(from: 0.0, to: 360.0, by: CGFloat(360 / n)).map {
        let bearing = $0 * .pi / 180
        // NO IDEA WHERE TO MOVE FURTHER
    }
    return result
}

getCirclePoints(centerPoint: CGPoint(x: 160, y: 240), radius: 120.0, n: 12)
Run Code Online (Sandbox Code Playgroud)

geometry ios swift

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

如何在 MapKit 上绘制围绕多个注释/坐标的圆形叠加层?

我有一个数组[CLLocationCoordinate2D],我想在MKMapView所有这些坐标周围画一个圆圈。

我已经成功地围绕一个圆圈画了一个圆,CLLocationCoordinate2D如下所示:

let coordinate = CLLocationCoordinate2D(latitude: 53, longitude: 27)
self.mapView.add(MKCircle(center: coordinate, radius: 100))

extension MapViewController: MKMapViewDelegate {
    func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
        guard overlay is MKCircle else { return MKOverlayRenderer() }

        let circle = MKCircleRenderer(overlay: overlay)
        circle.strokeColor = UIColor.red
        circle.fillColor = UIColor(red: 255, green: 0, blue: 0, alpha: 0.1)
        circle.lineWidth = 1
        return circle
    }
}
Run Code Online (Sandbox Code Playgroud)

如何绘制一个包围/包含所有坐标的圆?,如下所示:

在此输入图像描述

geometry mapkit ios mapkitannotation swift

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

如何在UIScrollview(iOS 11,iPhoneX)上摆脱safeAreaInsets

我有一个水平分页UIScrollview,以下是我的VFL前导/尾随约束H:|-0-[ScrollView]-0-|(与superview对齐).

safeAreaInsets在iPhone X中左/右横向.

这是一个错误吗?或者我错过任何Apple方式,当我们不需要时,这些插入不会被应用?

uiscrollview ios ios11 iphone-x

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

获取视图约束

如何获取 UIView 的前导、尾随、顶部和底部约束,如截图所示

在此处输入图片说明

ios swift

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

在Swift中更改多种货币的分组分隔符,货币符号和货币符号的位置

我的应用使用多种货币,这些货币使用不同的格式,例如:

卢布的价格显示为:1,101Руб.

美元的相同金额显示为:1 101美元

如何通过为不同货币定义一组不同的格式来更改分组分隔符,货币符号和货币符号的位置.

这就是我的短代码的立场

var formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.locale = NSLocale.currentLocale()
formatter.stringFromNumber(4500000)
//Output : $4,500,000.00
//Expected : 4,500,000 ???.
Run Code Online (Sandbox Code Playgroud)

nsnumberformatter ios swift

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