我有一个代码在地图视图上显示一些注释.但是,我正在尝试使用某些功能,当用户点击UISwitch按钮时可以启用或禁用它.关于我如何实现这一目标的任何建议?提前致谢!
let theHouse = MKPointAnnotation()
theHouse.coordinate = CLLocationCoordinate2D(latitude: 38.8977, longitude: -77.0365)
theHouse.title = "The House, DC"
theHouse.subtitle = "New Jersey, DC"
myMapView.addAnnotation(theHouse)
myAnnotations.append(theHouse.title!)
//Switch that toggles the annotation...
@IBAction func turnOffAnnotations(_ sender: UISwitch) {
//Code that enables and disables the annotation?
if toggle.isOn{
let visible = myMapView.visibleMapRect
let inRect = myMapView.annotations(in: visible)
for annotation: MKAnnotation in myMapView.annotations{
if (inRect.contains(anno as! AnyHashable)){
myMapView.removeAnnotation(annotation)
}
}
} else {
let visible = myMapView.visibleMapRect
let inRect = myMapView.annotations(in: visible)
for annotation: MKAnnotation in …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Swift 中构建一个简单的计算器,但我无法弄清楚我如何或为什么会收到错误(“String 类型的值没有成员类型 Int”)或如何修复它。到目前为止,这是我的代码:
class ViewController: UIViewController {
var isTypingNumber = false
var firstNumber = Int!()
var secondNumber = Int!()
var operation = ""
@IBOutlet weak var calculatorDisplay: UILabel!
@IBAction func acButtonTapped(sender: AnyObject) {
}
@IBAction func number7Tapped(sender: AnyObject) {
let number7 = sender.currentTitle
if isTypingNumber{
calculatorDisplay.text = calculatorDisplay.text! + number7!!
}else{
calculatorDisplay.text = number7
isTypingNumber = true
}
}
@IBAction func divideTapped(sender: AnyObject) {
isTypingNumber = false
firstNumber = calculatorDisplay.text?.Int()! **//Error: Value of type 'String' has no member …Run Code Online (Sandbox Code Playgroud) 我到处搜索,似乎无法找到实时更新标签的明确答案.
如何在UILabel不使用按钮的情况下更新(实时).例如,我有一个文本字段和一个UIlabel连接到view controller.
一旦用户开始输入,就会textfield在UI标签上实时显示相同的文本.结果,这消除了使用按钮来更新标签.我该怎么做呢?
我正在尝试在0-4之间生成最多5个数字,并且不会多次重复生成相同的数字。该程序将在尝试3次后停止,因此生成的随机数应为4,3,2,而不是4,3,4(例如)。
我创建了一个包含5个字符串元素的数组。单击按钮3次后,数组中的至少3个字符串将显示在标签上。单击按钮3次后,该应用程序将结束。但是,问题是每次单击按钮时,数组中的某些字符串都会不断重复自身。我发现了一种防止数字重复的方法,例如,代替(1,1,3)(1,3,1)。但就我而言,我不希望数字一旦生成就生成。例如。(1,3,4)而不是(1,3,1),其中重新生成(1)。
var fruits: [String] = ["Apple", "Mango", "Cherry", "Strawberry", "Blueberry", "Banana"] // fruits to be displayed in the label
func randomizeNum() -> UInt32 {
var randomNumber = arc4random_uniform(UInt32(fruits.count))
while previousNumber == randomNumber {
randomNumber = arc4random_uniform(UInt32(fruits.count))
}
displayLbl.text = fruits[Int(randomNumber)]
previousNumber = randomNumber
print("the random num is \(randomNumber)") // This prints for example 5, 1, 5. Need it to print only numbers that's not yet displayed with 3 attempts.
return randomNumber
}
Run Code Online (Sandbox Code Playgroud)
我希望此函数的输出生成一个随机数,例如0,4,1,但它生成5,1,5或0,4,0,其中(0)将再次重新生成。