- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在将一些代码迁移到 XCode 8 Beta 6,在 XCode 8 Beta 1 之前一直运行良好(之前是从 7.3 迁移过来的)。一切正常,除了使用比原始 slider 的内置图像更大的自定义缩略图图像时 slider 出现新的奇怪行为:
override func viewDidLoad() {
super.viewDidLoad()
sliderBuggy.setThumbImage(UIImage(named: "actionRobotDelay.png"), for: UIControlState())
}
正确行为:在 Beta 6 之前,一旦我设置了新的缩略图,跟踪区域就会自动调整,用户可以从图像内的任意点滑动它(注意:我我在真正的 iPad mini 上测试,而不是模拟器,而且我根本没有尝试使用 iPhone)。
现在发生了什么: 更改图像后,它看起来很好,但是允许用户滑动它的跟踪区域仍然是原始 slider 内置的小区域图片。从用户的角度来看,这绝对令人讨厌。
到目前为止我尝试了什么:
子类化和覆盖 thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect。遗憾的是,经过调试,我发现该方法返回了正确的新 CGRect,因此更改它没有效果。
覆盖 touchesBegan 以评估 slider 看到触摸事件的位置,因此作为一种可能的解决方法,我可以手动启动跟踪。但是touchesBegan清楚地显示触摸事件仅在属于原始图像的小区域上接收到。
在我开始从头开始编写自己的 slider 类之前,欢迎任何关于不同可能解决方法的想法。
最佳答案
子类和 munge HitTest 来做 slider 应该做的事情(谁知道它为什么不做?):
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let tr = self.trackRect(forBounds: self.bounds)
if tr.contains(point) { return self }
let r = self.thumbRect(forBounds: self.bounds, trackRect: tr, value: self.value)
if r.contains(point) { return self }
return nil
}
关于swift - XCode 8 Beta 6 中引入的 UISlider 错误的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128247/
我正在为 tvOS 扩展一个 iOS 应用程序。 在 iOS 应用程序上,我有很多 slider (用于选择年份范围的两侧 slider ,例如 1950-2010。或从 0.1 到 10.0 的值)
目前我正在对 UISlider 进行子类化,并在 drawRect 中设置默认值。我得到了一个奇怪的结果。 slider 最小图像位于正确位置,但 slider 最大图像左侧有空白。中间的 slide
我正在使用 AvPlayer 并尝试设置一个 slider 以允许删除音频文件。我在选定时遇到了问题。然后它会回到原始位置一秒钟,然后再回到它被拖动到的位置。 你在 Gif 上看不到我的光标,但平滑的
我已经创建了一个类似以下代码的 UISlider: BrightnessSlider = [[UISlider alloc] initWithFrame:CGRectMake(sliderXpoint
我有一个连续的 UI slider 。我在值发生变化时获取该值,并使用它来计算放入文本字段的值。 我将值更改导出链接到执行计算并且工作正常的方法,但我还希望在用户抬起 slider 后触发一个方法
关闭。这个问题需要details or clarity .它目前不接受答案。 想要改进这个问题吗? 通过 editing this post 添加详细信息并澄清问题. 关闭 6 年前。 Improve
我的表格单元格中有slider,这是我的 slider 初始化代码: UISlider* slider = [[UISlider alloc] init]; slider.continuous = N
我正在开发一个游戏,它有一个基于 UISliders 的组件。玩家必须从左向右滑动它们,一次一个,有时一次两个。问题出在双幻灯片上。当同时滑动两个 UISlider 时, slider 会滞后于玩家的
我愿意做这个小部件: 只能选择A-B-C。 知道是否有人已经做了类似的事情吗?如果没有,你会怎么做? 最佳答案 就我个人而言,我会使用标准 UISlider 并向 valueChanged 处理程序添
我需要在我的 iPhone 应用程序中添加 UISlider 控件。这应该看起来像任何 iphone 或 iPod touch 中显示的“滑动解锁” slider 。我不知道如何做到这一点。 在滑动解
我正在使用 UISlider 的 setThumbImage:forState 来自定义 slider 拇指的外观。但这看起来要大得多。我使用的图像大小为 55x55 像素。我必须使用的图像大小应该是
恐怕我在这里遗漏了一些明显的东西,但我在任何地方都找不到答案,我似乎也无法自己弄清楚,所以我会在这里问。 是否可以使 UISlider 比默认的稍小一些,就像 iPhone 上“iPod”应用程序中看
这个问题已经有答案了: How to Change the UISlider to Vertical? (4 个回答) 已关闭 9 年前。 如何制作垂直的 UISlider?我在其中一个应用程序中看到
如何自定义UISlider?(更改样式、背景...) 最佳答案 您可以通过this自定义控件的教程。 要自定义 UISlider,请使用本教程中的这段代码。 UIImage *minImage = [
我尝试找出如何强制 slider 的按钮移动它而不是正常滑动,但保持复选框过滤器仍然以正确的方式工作。 当我设置按钮来移动 slider 时,过滤器无法按应有的方式工作。当我将 slider 代码从:
关于如何在 UISlider 中实现不同的值密度,你有什么巧妙的想法/解决方案吗?我的意思是我们将在 UISlider 的左半边有 20 步,在 UISlider 的右半边有 100 步。这意味着最小
我想做这样的事情。我有一个 UISlider它的最小值应该是0,最大值应该是1000。我想把这个范围分成10个部分。像这样。 0-----100----200----300----400 当用户从 0
我已经为 UISlider 设置了缩略图。当我拖动 slider 时,此图像不会反射(reflect)出来。一旦我完成拖动,它就会出现。 我已经为所有状态设置了图像 [self.myslide
我正在构建一个 iOS 应用程序,我必须在其中实现自定义 UISlider。问题是内置的 UISlider 不支持渐变轨道。另一个问题是我的 UI 风格指南显示当前跟踪值矩形应该是两种颜色的渐变,如图
我正在创建(或尝试)自定义 UISlider 外观,仍然是水平的,但要高得多。我有两个问题。 1.这是我用来将图像放到 slider 上的代码。 UIImage *minImage = [UIImag
我是一名优秀的程序员,十分优秀!