GVKun编程网logo

swift UISlider

2

在本文中,我们将为您详细介绍swiftUISlider的相关知识,此外,我们还会提供一些关于CPSliderUISlider的改进版、CustomUISlider、iOSSwift-UISlider-

在本文中,我们将为您详细介绍swift UISlider的相关知识,此外,我们还会提供一些关于CPSlider UISlider 的改进版、Custom UISlider、iOS Swift - UISlider - 添加第二个轨迹栏 更新、iOS Swift 应用程序随机 EXC_BAD_ACCESS 崩溃:swift_bridgeObjectRetain swift_retain swift::RefCounts的有用信息。

本文目录一览:

swift UISlider

swift UISlider


    func testUiSlider()
    {
        let slider = UiSlider(frame: CGRectMake(0,70,300,40))
        slider.center = self.view.center
        slider.minimumValue = 0
        slider.maximumValue = 1
        slider.value = 0.5
        slider.continuous=false  //滑块滑动停止后才触发ValueChanged事件
        slider.addTarget(self,action: "valuechage:",forControlEvents: UIControlEvents.ValueChanged)
        self.view.addSubview(slider)
    }
    
    func valuechage(sender: UiSlider)
    {
       print(sender.value)
    }

CPSlider UISlider 的改进版

CPSlider UISlider 的改进版

CPSlider 介绍

cpslider 是 UiSlider 的改进版,is a drop-in, subclass replacement for UiSlider that
allows varying scrubbing speeds as the user drags away from the slider thumb,
emulating the slider used in the iOS iPod music player. It also includes
delegate callbacks to allow an object to be notified of scrubbing speed
changes.

实例代码:

cpslider *slider = [[cpslider alloc] initWithFrame:CGRectMake(18, 166, 284, 23)];
slider.minimumValue = 0.0f;
slider.maximumValue = 1.0f;
[self.view addSubview:slider]
[self.slider addTarget:self action:@selector(sliderValueDidChange:) forControlEvents:UIControlEventValueChanged];

CPSlider 官网

https://github.com/cbpowell/CPSlider

Custom UISlider

Custom UISlider

Custom UISlider 介绍

Custom UiSlider 是一个自定义的滑块,允许使用图片来设置滑块

Custom UISlider 官网

http://www.cocoacontrols.com/platforms/ios/controls/custom-uislider

iOS Swift - UISlider - 添加第二个轨迹栏 更新

iOS Swift - UISlider - 添加第二个轨迹栏 更新

如何解决iOS Swift - UISlider - 添加第二个轨迹栏 更新

我正在尝试自定义我的子类 UiSlider 以在可拖动拇指下方添加第二个轨迹栏。这里的想法是让这个新轨道代表“平均评级”以及用户用来设置自己评级的现有拇指和轨道。我尝试插入一个自定义图层,但它要么位于整个滑块的后面,要么位于包括可拖动拇指在内的整个滑块的顶部。对此问题的任何帮助/见解将不胜感激。提前致谢。

这是我想要实现的目标的图像。我想成为代表“平均评分”的添加曲目的蓝色条:

解决方法

不要调用 addSublayer(),而是尝试使用 insertSublayer(_: at:)。这将使您能够完全控制要插入 average rating layer 实例的层层次结构的确切位置。


更新

尝试检查 self.layer.sublayers 实例的 UISlider。如果您可以轻松识别 thumbLayer(例如基于 bounds.size 或它独有的任何内容)。然后你可以尝试插入你的图层

  1. 拇指下方使用 insertSublayer(_: below:)
  2. 使用 insertSublayer(_: above:)
  3. 在进度轨道上方(以防您可以识别它)

iOS Swift 应用程序随机 EXC_BAD_ACCESS 崩溃:swift_bridgeObjectRetain swift_retain swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>

iOS Swift 应用程序随机 EXC_BAD_ACCESS 崩溃:swift_bridgeObjectRetain swift_retain swift::RefCounts

如何解决iOS Swift 应用程序随机 EXC_BAD_ACCESS 崩溃:swift_bridgeObjectRetain swift_retain swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>

我不断收到来自随机用户的随机崩溃报告。不幸的是,我无法定期重现这一点。用户说崩溃是在 discussionViewController 中随机发生的。所有崩溃报告都有类似的内容:

0   libswiftCore.dylib              0x00000001a53face4 swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1> >::incrementSlow(swift::RefCountBitsT<(swift::RefCountInlinedness)1>,unsigned int) + 60 (atomic:1003)
1   libswiftCore.dylib              0x00000001a53c59e0 swift_retain + 124 (RefCount.h:813)
2   libswiftCore.dylib              0x00000001a5401d60 swift_bridgeObjectRetain + 56 (SwiftObject.mm:585)
3   APPNAME                             0x0000000102b59734 closure #1 in discussionViewController.fetchPostData() + 7916

这是完整的崩溃日志和崩溃的线程:

Hardware Model:      iphone11,6
Process:             APPNAME [11770]
Path:                /private/var/containers/Bundle/Application/.../APPNAME.app/APPNAME
Identifier:          ----
Version:             62 (62)
AppStoretools:       12E262
AppVariant:          1:iphone11,6:13
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           ---- [1824]


Date/Time:           2021-06-17 12:07:01.4346 +1000
Launch Time:         2021-06-17 12:06:56.4993 +1000
OS Version:          iPhone OS 14.6 (18F72)
Release Type:        User
Baseband Version:    3.04.01
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x8000000000000010 -> 0x0000000000000010 (possible pointer authentication failure)
VM Region Info: 0x10 is not in any region.  Bytes before following region: 4339515376
      REGION TYPE                 START - END      [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                   102a7c000-102a94000 [   96K] r-x/r-x SM=COW  ...APPNAME.app/APPNAME

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL,Code 0xb
Terminating Process: exc handler [11770]
Triggered by Thread:  3


Thread 3 name:
Thread 3 Crashed:
0   libswiftCore.dylib              0x00000001a53face4 swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1> >::incrementSlow(swift::RefCountBitsT<(swift::RefCountInlinedness)1>,unsigned int) + 60 (atomic:1003)
1   libswiftCore.dylib              0x00000001a53c59e0 swift_retain + 124 (RefCount.h:813)
2   libswiftCore.dylib              0x00000001a5401d60 swift_bridgeObjectRetain + 56 (SwiftObject.mm:585)
3   APPNAME                             0x0000000102b59734 closure #1 in discussionViewController.fetchPostData() + 7916
4   APPNAME                             0x0000000102ad09d4 thunk for @escaping @callee_guaranteed (@guaranteed Data?,@guaranteed NSURLResponse?,@guaranteed Error?) -> () + 132 (<compiler-generated>:0)
5   CFNetwork                       0x00000001a1b0a3dc __40-[__NSURLSessionLocal taskForClassInfo:]_block_invoke + 540 (LocalSession.mm:687)
6   CFNetwork                       0x00000001a1b1c768 __49-[__NSCFLocalSessionTask _task_onqueue_didFinish]_block_invoke + 244 (LocalSessionTask.mm:584)
7   libdispatch.dylib               0x00000001a10d1a84 _dispatch_call_block_and_release + 32 (init.c:1466)
8   libdispatch.dylib               0x00000001a10d381c _dispatch_client_callout + 20 (object.m:559)
9   libdispatch.dylib               0x00000001a10db004 _dispatch_lane_serial_drain + 620 (inline_internal.h:2557)
10  libdispatch.dylib               0x00000001a10dbc34 _dispatch_lane_invoke + 456 (queue.c:3862)
11  libdispatch.dylib               0x00000001a10e64bc _dispatch_workloop_worker_thread + 764 (queue.c:6589)
12  libsystem_pthread.dylib         0x00000001ed04a7a4 0x1ed047000 + 14244
13  libsystem_pthread.dylib         0x00000001ed05174c 0x1ed047000 + 42828

我已验证 discussionViewController.fetchPostData() 不会强制解开任何可选选项,没有 try! 并且在任何地方都使用 [weak self]self?。该函数非常大,所以我很难缩小崩溃发生的范围。

今天关于swift UISlider的介绍到此结束,谢谢您的阅读,有关CPSlider UISlider 的改进版、Custom UISlider、iOS Swift - UISlider - 添加第二个轨迹栏 更新、iOS Swift 应用程序随机 EXC_BAD_ACCESS 崩溃:swift_bridgeObjectRetain swift_retain swift::RefCounts等更多相关知识的信息可以在本站进行查询。

本文标签: