我正在尝试为我的应用程序创建一个类似于下图所示的 slider 。我尝试在界面生成器中进行操作,但没有成功。默认 slider 始终从左侧突出显示。如何实现?
最佳答案
UISlider 没有对您想要执行的操作的内置支持。最好编写您自己的 UIControl 或 UIView 子类,而不是尝试自定义 UISlider。
但是,如果您真的想自定义一个 UISlider,那么您需要了解以下内容。
UISlider 有三个私有(private)的 UIImageView subview :一个用于拇指,一个用于拇指左侧的轨道,一个用于右侧的轨道大拇指。当您拖动 slider 或以编程方式更改 slider 值时, slider 会自行发送 layoutSubviews。在其 layoutSubviews 方法中,它更改三个 ImageView 的帧以匹配新的 slider 值。
您不应该弄乱 UISlider 的私有(private) subview 。它们可能会在未来的 iOS 版本中发生变化。相反,您想要有效地禁用轨道图像 subview 以便您可以绘制自己的轨道,并单独保留缩略图图像 subview 以便 UISlider 将负责显示缩略图。
您需要子类化 UISlider。在您的子类中,您需要做几件事:
您需要将 minimumValueImage 和 maximumValueImage 属性设置为透明的 UIImage。这将有效地禁用绘制普通的两部分轨道的私有(private) UISlider subview 。
您需要为自己指定三个新的 UIImage 属性:leftEndImage、rightEndImage 和 filledImage。您将使用它们来填充轨道的三个不同部分。
您需要给自己三个 UIImageView subview - 一个用于轨道的三个部分。
您需要覆盖 layoutSubviews。在您的方法中,您需要调用 [super layoutSubviews],然后设置三个图像 subview 的框架以匹配 slider 的当前值。
如果您是 iOS 编程的新手,这可能有点复杂。祝你好运。
实际上,我想到您可以将 minimumValueImage 设置为默认 maximumValueImage 图像的左右镜像,这样 UISlider将绘制三部分轨道的两个白色端。然后你只需要添加一个你自己的 UIImageView subview 来绘制轨道的蓝色部分。
无论您如何操作,如果您将 UISlider 子类化并插入 subview ,您将依赖于 UISlider 的实现,而不会发生太大变化。例如,如果 UISlider 的 future 版本直接在 drawRect: 中绘制轨迹和 slider ,而不是使用 subview ,那么您的子类肯定会看起来不对。
关于iphone - iOS UISlider 自定义。从中心显示突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090341/
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c
我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin