Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e61ff3a85 | |||
| 204b871f17 | |||
| ecb41f1885 | |||
| dffbd8cbfd | |||
| 458e5fc29b | |||
| a6f335df01 | |||
| 106692fbfb | |||
| cb4dcfd07a | |||
| 419172104d |
+2
-2
@@ -1,5 +1,5 @@
|
||||
daysUntilStale: 7
|
||||
daysUntilClose: 7
|
||||
daysUntilStale: 5
|
||||
daysUntilClose: 3
|
||||
onlyLabels:
|
||||
- awaiting user input
|
||||
staleLabel: given up
|
||||
|
||||
@@ -12,8 +12,10 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup fastlane
|
||||
run: brew install fastlane
|
||||
- name: Setup Environment
|
||||
run: |
|
||||
brew install fastlane
|
||||
brew install cocoapods
|
||||
|
||||
- name: Publish release
|
||||
id: publish_release
|
||||
@@ -39,19 +41,10 @@ jobs:
|
||||
env:
|
||||
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
|
||||
run: |
|
||||
gem install cocoapods
|
||||
set -eo pipefail
|
||||
pod lib lint --allow-warnings
|
||||
pod trunk push --allow-warnings
|
||||
|
||||
- name: Communicate on PR released
|
||||
uses: unsplash/comment-on-pr@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
msg: |
|
||||
Congratulations! 🎉 This was released as part of [SkeletonView ${{ steps.publish_release.outputs.tag_name }}](${{ steps.publish_release.outputs.html_url }}) 🚀
|
||||
|
||||
- name: Tweet the release
|
||||
uses: ethomson/send-tweet-action@v1
|
||||
with:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = "SkeletonView"
|
||||
s.version = "1.27.0"
|
||||
s.version = "1.29.1"
|
||||
s.summary = "An elegant way to show users that something is happening and also prepare them to which contents he is waiting"
|
||||
s.description = <<-DESC
|
||||
Today almost all apps have async processes, as API requests, long runing processes, etc. And while the processes are working, usually developers place a loading view to show users that something is going on.
|
||||
|
||||
@@ -29,4 +29,8 @@ public struct SkeletonGradient {
|
||||
}
|
||||
}
|
||||
|
||||
public init(colors: [UIColor]) {
|
||||
self.gradientColors = colors
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -106,9 +106,11 @@ extension UILabel: SkeletonTextNode {
|
||||
}
|
||||
|
||||
var fontLineHeight: CGFloat? {
|
||||
if let attributes = attributedText?.attributes(at: 0, effectiveRange: nil),
|
||||
let fontAttribute = attributes.first(where: { $0.key == .font }) {
|
||||
return fontAttribute.value as? CGFloat ?? font.lineHeight
|
||||
if let attributedText = attributedText,
|
||||
attributedText.length > 0 {
|
||||
let attributes = attributedText.attributes(at: 0, effectiveRange: nil)
|
||||
let fontAttribute = attributes.first(where: { $0.key == .font })
|
||||
return fontAttribute?.value as? CGFloat ?? font.lineHeight
|
||||
} else {
|
||||
return font.lineHeight
|
||||
}
|
||||
@@ -179,9 +181,11 @@ extension UITextView: SkeletonTextNode {
|
||||
}
|
||||
|
||||
var fontLineHeight: CGFloat? {
|
||||
if let attributes = attributedText?.attributes(at: 0, effectiveRange: nil),
|
||||
let fontAttribute = attributes.first(where: { $0.key == .font }) {
|
||||
return fontAttribute.value as? CGFloat ?? font?.lineHeight
|
||||
if let attributedText = attributedText,
|
||||
attributedText.length > 0 {
|
||||
let attributes = attributedText.attributes(at: 0, effectiveRange: nil)
|
||||
let fontAttribute = attributes.first(where: { $0.key == .font })
|
||||
return fontAttribute?.value as? CGFloat ?? font?.lineHeight
|
||||
} else {
|
||||
return font?.lineHeight
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ extension CALayer {
|
||||
insertSublayer(sublayer.contentLayer, at: index)
|
||||
switch transition {
|
||||
case .none:
|
||||
completion?()
|
||||
DispatchQueue.main.async { completion?() }
|
||||
case .crossDissolve(let duration):
|
||||
sublayer.contentLayer.setOpacity(from: 0, to: 1, duration: duration, completion: completion)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user