efprefix / efautoscrolllabel Goto Github PK
View Code? Open in Web Editor NEWA label which can scroll when text length beyond the width of label.
Home Page: https://swiftpackageindex.com/EFPrefix/EFAutoScrollLabel
License: MIT License
A label which can scroll when text length beyond the width of label.
Home Page: https://swiftpackageindex.com/EFPrefix/EFAutoScrollLabel
License: MIT License
As of XCode 9.1, the following warning is issued:
'characters' is deprecated: Please use String or Substring directly -> EFTAutoScrollLabel.swift
XCode: 9.4
EFAutoScrollLabel: 4.0.2
Swift: 3.3
It would be great to take care of this to reduce the warnings in the build log. It is a very simple fix, I can submit a PR if you would like.
Thanks!
After few ten seconds it stops to scroll and XCode says UI API called on a background thread: (the log below), also XCode highilghts these 3 issues. How to heal it? I put the func to DispatchQueue.main.async, it works, but don't think it is good.
ps. thanks for your work!
Main Thread Checker: UI API called on a background thread: -[UILabel text]
PID: 2019, TID: 3478103, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 MyApp! 0x0000000100672f48 _T010MyAppO_17EFAutoScrollLabelC4textSSSgfg + 132
5 MyApp! 0x0000000100676d08 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyF + 84
6 MyApp! 0x0000000100677f08 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyFTo + 40
7 Foundation 0x0000000187f93860 <redacted+ 996
8 libsystem_pthread.dylib 0x00000001871d032c <redacted+ 308
9 libsystem_pthread.dylib 0x00000001871d01f8 <redacted+ 0
10 libsystem_pthread.dylib 0x00000001871cec38 thread_start + 4
Main Thread Checker: UI API called on a background thread: -[UIView bounds]
PID: 2019, TID: 3478103, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 MyApp! 0x0000000100676fb4 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyF + 768
5 MyApp! 0x0000000100677f08 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyFTo + 40
6 Foundation 0x0000000187f93860 <redacted+ 996
7 libsystem_pthread.dylib 0x00000001871d032c <redacted+ 308
8 libsystem_pthread.dylib 0x00000001871d01f8 <redacted+ 0
9 libsystem_pthread.dylib 0x00000001871cec38 thread_start + 4
Main Thread Checker: UI API called on a background thread: -[UIView layer]
PID: 2019, TID: 3478103, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 MyApp! 0x0000000100677434 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyF + 1920
5 MyApp! 0x0000000100677f08 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyFTo + 40
6 Foundation 0x0000000187f93860 <redacted+ 996
7 libsystem_pthread.dylib 0x00000001871d032c <redacted+ 308
8 libsystem_pthread.dylib 0x00000001871d01f8 <redacted+ 0
9 libsystem_pthread.dylib 0x00000001871cec38 thread_start + 4
Main Thread Checker: UI API called on a background thread: -[UIScrollView setContentOffset:]
PID: 2019, TID: 3478103, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 MyApp! 0x0000000100677620 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyF + 2412
5 MyApp! 0x0000000100677f08 _T010MyAppO_17EFAutoScrollLabelC06scrollE8IfNeededyyFTo + 40
6 Foundation 0x0000000187f93860 <redacted+ 996
7 libsystem_pthread.dylib 0x00000001871d032c <redacted+ 308
8 libsystem_pthread.dylib 0x00000001871d01f8 <redacted+ 0
9 libsystem_pthread.dylib 0x00000001871cec38 thread_start + 4
add the label to UITabelViewCell,label can`t scroll
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.
The error appears.
Main Thread Checker: UI API called on a background thread: -[UILabel text]
PID: 6718, TID: 54018, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
It causes by this code.
@objc public func scrollLabelIfNeeded() {
if text == nil || text?.isEmpty == true {
return
}
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }
self.scrollLabelIfNeededAction()
}
}
I've got it by adding label to UIPickerView as custom view. If I do nothing for about 10 seconds the error appears.
This code fixed it.
@objc public func scrollLabelIfNeeded() {
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }
if self.text == nil || self.text?.isEmpty == true {
return
}
self.scrollLabelIfNeededAction()
}
}
Is there currently any way to put a count on the number of times the label will scroll?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.