在iOS 7中,交换机默认不允许自定义开/关图像.虽然我仍然可以在界面生成器中设置它们但它不会显示.
转换指南仅指出它不再默认打开.据推测,有一种方法可以改变它,所以我确实使用了我的图像.
环境:版本11.0 beta 3(11M362v)
这是全文:
invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug.
This message will only appear once per execution.
Hello World
Run Code Online (Sandbox Code Playgroud)
仅当我单击与动作连接的UISwitch按钮时,才会显示此消息;在这里打印“ Hello World”。
显然,该动作的行为不受影响。
作为比较,我在工具栏上创建了一个正常工作的UIBarButtonItem。因此,切换按钮有点令人讨厌。
问题:为什么会出现,这是什么意思?补救?
我试图在iOS中更改UISwitch元素的默认高度和宽度,但未成功.
你能改变UISwitch元素的默认高度和宽度吗?
元素是否应该以编程方式创建?
我在故事板中设置了默认色调颜色,但是我的UISwitch组件的颜色为蓝色,默认颜色.
所以我试着说
[[UIView appearance] setTintColor:APPCOLOR];
Run Code Online (Sandbox Code Playgroud)
在我的app委托方法中
- (void)applicationWillResignActive:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)
但仍然没有运气,我也试着放在那里
[[UISwitch appearance] setTintColor:APPCOLOR];
Run Code Online (Sandbox Code Playgroud)
再一次没有变化.
它APPCOLOR
在我的constants.h文件中定义,我当然包含它.
如何在全球范围内设置UISwitch的这种色调?
其他元素的色调,例如UIButton正确更改.
在我的UITableViewController中,我有一个自定义单元格,其中包含一个切换器,如下所示:
import Foundation
import UIKit
class SwitchCell: UITableViewCell {
@IBOutlet weak var label : UILabel!
@IBOutlet weak var switchEmail : UISwitch!
func setEditable(canEdit:Bool) {
if (canEdit) {
self.switchEmail.enabled = true
self.label.highlighted = false
}
else {
self.switchEmail.enabled = false
self.label.highlighted = true
}
}
func configureCellWithSwitch(labelText:String, switchValue:Bool, enabled:Bool) {
var labelFrame:CGRect = self.label.frame
labelFrame.size.height = Settings.labelHeight
self.label.frame = labelFrame
self.label.text = labelText
if (switchValue) {
self.switchEmail.setOn(true, animated: true)
}
else {
self.switchEmail.setOn(false, animated: true)
}
self.setEditable(enabled)
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何实现切换器的侦听器/委托,以便从UITableViewController获取其值.我能够为UITextField和UITextView实现这些方法的单元格编写委托/监听器
func …
Run Code Online (Sandbox Code Playgroud) 我是一个新手iOS程序员,我有一个问题.
我目前正在研究iOS核心数据,我的问题是我想通过获取a的值将数据插入到数据库的布尔属性中UISwitch
.
问题是我不知道我必须调用什么方法(例如.text对UITextField做同样的事情).我做了一个小谷歌搜索,但没有结果.这是一些代码:
[newContact setValue:howMany.text forKey:@"quantity"];
[newContact setValue:important.??? forKey:@"important"];
Run Code Online (Sandbox Code Playgroud)
howmany是一个文本域,重要的是UISwitch
每当关闭时看起来像这样:
虽然我更喜欢灰色背景.我真的必须使用UIImageView吗?
我需要在项目中实现自定义开关.目前我发现我们无法改变UISwitch的实现方式,如下图所示.我已经关注帖子并通过stackoverflow和其他博客搜索,但没有找到所需的解决方案.一种方法是使用UISegmented控件,如本文所述,但这也无法解决我的问题.
在此先感谢您的帮助
这听起来微不足道,但我注意到一些奇怪.我为UISwitch的Value Changed事件连接了一个处理程序.我期望的是每次调用处理程序时,开关的值都会改变.但是,这其实并不总是如此.如果您快速打开/关闭开关,则可以使用交换机的SAME状态连续调用处理程序(在我的特定应用程序中,这是一个问题).所以我想知道是否有其他人注意到这种行为,并找到了一个很好的解决方案.
有没有人知道我可以改变开启和关闭文本标签的方式是和否.
我做到了
((UILabel *)[[[[[[switchControl subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:0]).text = @"Yes";
((UILabel *)[[[[[[switchControl subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:1]).text = @"No";
Run Code Online (Sandbox Code Playgroud)
但是,随着iOS 4.2的发布,不再支持此功能(这可能不是Apple推荐的)
我的客户坚持使用是/否开关.我很感激任何建议!
非常感谢
uiswitch ×10
ios ×7
objective-c ×3
cocoa-touch ×2
iphone ×2
core-data ×1
ios7 ×1
swift ×1
tintcolor ×1
uitableview ×1
uiview ×1
xcode ×1
xcode11 ×1