Compare commits

..

60 Commits

Author SHA1 Message Date
Juanpe Catalán 11b623fb13 Update release.yml 2021-02-01 19:23:48 +01:00
Juanpe Catalán 4899802b01 Update release.yml 2021-02-01 19:14:29 +01:00
Juanpe Catalán 0dfe1ca43b Update release.yml 2021-02-01 19:11:00 +01:00
Juanpe Catalán 499d01c232 Update release.yml 2021-02-01 19:07:22 +01:00
Juanpe Catalán f8f368ab8a Update release.yml 2021-02-01 19:02:14 +01:00
Juanpe Catalán 023a57a763 Merge branch 'develop' of https://github.com/Juanpe/SkeletonView into develop 2021-02-01 19:00:58 +01:00
Juanpe Catalán d426a0916e create new lane to bump podspec version 2021-02-01 19:00:51 +01:00
Juanpe Catalán 611c248c51 Update release.yml 2021-02-01 18:52:49 +01:00
Juanpe Catalán 6f20c34d56 Update release.yml 2021-02-01 18:40:01 +01:00
Juanpe Catalán be25b572f8 Update release.yml 2021-02-01 18:27:51 +01:00
Juanpe Catalán 3c67812453 Update main.yml 2021-02-01 18:23:39 +01:00
Juanpe Catalán 0431eb2a7d Update release.yml 2021-02-01 18:20:55 +01:00
Juanpe Catalán fa0b95d923 Update release-drafter.yml 2021-02-01 18:18:15 +01:00
Juanpe Catalán 523cd1c657 Create release_notes.yml 2021-02-01 18:14:27 +01:00
Juanpe Catalán 29e65c70d3 Create release-drafter.yml 2021-02-01 18:13:12 +01:00
Juanpe Catalán 4b7360a011 Update release.yml 2021-02-01 18:12:11 +01:00
Juanpe Catalán 2753c54216 feat: add script to update version 2021-02-01 18:10:22 +01:00
Juanpe Catalán c7b3bc67be Update release.yml 2021-02-01 18:08:03 +01:00
Juanpe Catalán 0c8bbf1fed Update release.yml 2021-02-01 17:58:55 +01:00
Juanpe Catalán 2e99bc98bf Update release.yml 2021-02-01 17:57:43 +01:00
Juanpe Catalán d5d52d1416 Update release.yml 2021-02-01 17:41:18 +01:00
Juanpe Catalán 91c7735d0c Create release.yml 2021-02-01 15:27:24 +01:00
Juanpe Catalán 18c5c1deb8 feat: remove useless corner radius constraint (#369)
* remove useless corner radius constraint

* update CHANGELOG
2021-02-01 12:13:48 +01:00
Juanpe Catalán 1ecfa31743 feat: add more templates to create issues (#368) 2021-01-31 17:11:46 +01:00
Juanpe Catalán 82b70ea1ee Update validations.yml 2021-01-31 14:20:25 +01:00
Juanpe Catalán d8ee06f1c5 Update validations.yml 2021-01-31 13:44:08 +01:00
Juanpe Catalán 13ce7426dd Update validations.yml 2021-01-31 13:36:38 +01:00
Juanpe Catalán 7d5039536c Update validations.yml 2021-01-31 13:28:12 +01:00
Juanpe Catalán b7a7731784 Update validations.yml 2021-01-31 13:22:01 +01:00
Juanpe Catalán 07f92d098a Update validations.yml 2021-01-31 13:06:33 +01:00
Juanpe Catalán f45405c9d5 Update validations.yml 2021-01-31 12:58:44 +01:00
Juanpe Catalán 768354ca35 Update validations.yml 2021-01-31 12:27:12 +01:00
Juanpe Catalán d5819763a1 Update validations.yml 2021-01-31 12:26:05 +01:00
Juanpe Catalán a73fc993aa Update validations.yml 2021-01-31 12:07:18 +01:00
Juanpe Catalán 0d027b5927 Update validations.yml 2021-01-31 11:50:44 +01:00
Juanpe Catalán bc482f58b3 Update and rename Validations.yml to validations.yml 2021-01-31 11:11:17 +01:00
Juanpe Catalán 78e941e01c Update and rename PR.yml to Validations.yml 2021-01-30 21:25:25 +01:00
Juanpe Catalán 7282008606 Update PR.yml 2021-01-28 10:40:24 +01:00
Juanpe Catalán 52d657faa0 Update PR.yml 2021-01-28 09:50:52 +01:00
Juanpe Catalán cba096becf Update PR.yml 2021-01-28 09:46:17 +01:00
Juanpe Catalán c095f49028 Update PR.yml 2021-01-28 09:34:44 +01:00
Juanpe Catalán 89e292c11b fix: broken workflow link 2021-01-27 17:29:40 +01:00
Juanpe Catalán 5089295771 feat: update CI badge in README files 2021-01-27 17:27:10 +01:00
Juanpe Catalán 39971af22d feat: update Github actions 2021-01-27 17:25:23 +01:00
Juanpe Catalán 81d182259d feat: refactor CI workflows 2021-01-27 17:24:16 +01:00
Juanpe Catalán 1d82545a3d Merge pull request #360 from Juanpe/test_action 2021-01-26 18:06:59 +01:00
Juanpe Catalán 9086d7e874 use GITHUB TOKEN 2021-01-26 18:02:43 +01:00
Juanpe Catalán 666ebdf472 fix syntax error 2021-01-26 17:56:53 +01:00
Juanpe Catalán 5a5d7b66e7 update action trigger 2021-01-26 17:54:50 +01:00
Juanpe Catalán 78f2bbe9f1 udpate danger action 2021-01-26 16:59:22 +01:00
Juanpe Catalán c7133a6711 Merge pull request #357 from keshavamurthy1/fix/refactored_removed_unused_code
Removed duplicate code in SkeletonCollectionDelegate
2021-01-22 14:26:54 +01:00
Juanpe Catalán aee5cdfd8f Merge pull request #359 from keshavamurthy1/fix/skeletonview_respecting_font_height_than_view_height
Fixed: SkeletonView respecting Font's height, rather than the `UIView…
2021-01-22 14:23:12 +01:00
Juanpe Catalán 638c535767 Update checks.yml 2021-01-22 13:36:26 +01:00
Juanpe Catalán 782dd45b33 Update checks.yml 2021-01-22 13:33:38 +01:00
Keshavamurthy GN 073baa6483 Update UIView+Frame.swift 2021-01-22 17:45:36 +05:30
Keshavamurthy GN a26dbf7c89 Reverted the iOS 10 check as per the review comment 2021-01-22 17:28:32 +05:30
Juanpe Catalán 7ebde2b030 Update checks.yml 2021-01-22 12:51:51 +01:00
Keshavamurthy GN 4009ed2b1e Fixed: SkeletonView respecting Font's height, rather than the UIView actual height #353
Using Label height from the HeightConstraint if there is any instead of the Label Font line height
if no HeightConstraint set, will be using SkeletonAppearance.default.multilineHeight as it was before
2021-01-21 12:52:17 +05:30
Keshavamurthy GN a246c16cfe Removed duplicate code in SkeletonCollectionDelegate
Removed check for older versions in UIView+Frame
Removed return on single lines (Implicit Returns)
2021-01-18 18:41:23 +05:30
Juanpe Catalán ef8e4578d7 Update CHANGELOG.md 2020-10-29 14:27:42 +01:00
30 changed files with 386 additions and 174 deletions
@@ -1,3 +1,12 @@
---
name: "\U0001F41B Bug report"
about: Report a bug or unexpected behavior while using SkeletonView
title: ''
labels: bug
assignees: ''
---
### Description
Describe your issue here.
+28
View File
@@ -0,0 +1,28 @@
---
name: "\U0001F4E3 Feedback"
about: Give us general feedback about the SkeletonView
title: ''
labels: feedback
assignees: ''
---
# SkeletonView Feedback
You can use this template to give us structured feedback or just wipe it and leave us a note. Thank you!
## What have you loved?
_eg "the nice colors"_
## What was confusing or gave you pause?
_eg "it did something unexpected"_
## Are there features you'd like to see added?
_eg "SkeletonView should be compatible with SwiftUI"_
## Anything else?
_eg "have a nice day"_
@@ -0,0 +1,20 @@
---
name: "⭐ Submit a request"
about: Surface a feature or problem that you think should be solved
title: ''
labels: enhancement
assignees: ''
---
### Describe the feature or problem youd like to solve
A clear and concise description of what the feature or problem is.
### Proposed solution
How will it benefit SkeletonView and its users?
### Additional context
Add any other context like screenshots or mockups are helpful, if applicable.
+39
View File
@@ -0,0 +1,39 @@
name-template: '📦 $RESOLVED_VERSION'
tag-template: '$RESOLVED_VERSION'
category-template: '#### $TITLE'
change-template: '- **#$NUMBER**: $TITLE - @$AUTHOR'
template: |
$CHANGES
categories:
- title: '🚨 Breaking'
label: 'breaking'
- title: '🔬Improvements'
label: '💡 enhancement'
- title: '🙌 New'
label: 'feature'
- title: '🩹 Bug fixes'
label: '🐞 bug'
- title: '⚙️ Maintenance'
label: '⚙️ maintenance'
- title: '📚 Documentation'
label: '📚 docs'
- title: '💾 Dependency Updates'
label: 'dependencies'
version-resolver:
major:
labels:
- 'breaking'
- 'feature'
minor:
labels:
- '💡 enhancement'
patch:
labels:
- '🐞 bug'
- '⚙️ maintenance'
- '📚 docs'
- 'dependencies'
exclude-labels:
- 'skip-changelog'
-20
View File
@@ -1,20 +0,0 @@
name: build
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: xcodebuild
run: |
xcodebuild -project SkeletonView.xcodeproj -target SkeletonView-iOS -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=12'
xcodebuild -project SkeletonView.xcodeproj -target SkeletonView-tvOS -sdk appletvsimulator -destination 'platform=tvOS Simulator,name=Apple TV,OS=12'
xcodebuild -project SkeletonView.xcodeproj -target SkeletonViewExample -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=12'
-15
View File
@@ -1,15 +0,0 @@
name: CI
on: [pull_request]
jobs:
danger:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Execute danger
uses: danger/swift@3.5.0
with:
args: --failOnErrors --no-publish-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+19
View File
@@ -0,0 +1,19 @@
name: CI
on:
pull_request:
branches: [develop]
jobs:
build:
runs-on: macos-latest
strategy:
matrix:
build-config:
- { target: 'SkeletonView-iOS', destination: 'platform=iOS Simulator,name=iPhone 8', sdk: 'iphonesimulator' }
- { target: 'SkeletonView-tvOS', destination: 'platform=tvOS Simulator,name=Apple TV', sdk: 'appletvsimulator' }
- { target: 'SkeletonViewExample', destination: 'platform=iOS Simulator,name=iPhone 8', sdk: 'iphonesimulator' }
steps:
- uses: actions/checkout@v2
- name: Build
run: xcodebuild clean -target '${{ matrix.build-config['target'] }}' -sdk '${{ matrix.build-config['sdk'] }}' -destination '${{ matrix.build-config['destination'] }}'
+61
View File
@@ -0,0 +1,61 @@
name: Release
on:
workflow_dispatch:
inputs:
release_version:
description: "Version"
required: true
default: ""
jobs:
pod_lib_lint:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Validate Pod
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
run: pod lib lint SkeletonView.podspec --allow-warnings
bump_pod_version:
runs-on: ubuntu-latest
needs: pod_lib_lint
steps:
- uses: actions/checkout@v2
- name: setup fastlane
run: brew install fastlane
- name: bump version
run: fastlane bump_version next_version:${{ github.event.inputs.release_version }}
commit_changes:
needs: bump_pod_version
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: 'Bump version ${{ github.event.inputs.release_version }}'
create_release:
runs-on: ubuntu-latest
needs: commit_changes
steps:
- uses: actions/checkout@v2
- uses: release-drafter/release-drafter@v5
with:
publish: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
pod_trunk_repo:
runs-on: macOS-latest
needs: create_release
steps:
- uses: actions/checkout@v1
- name: Publish Pod
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
run: pod trunk push SkeletonView.podspec
+14
View File
@@ -0,0 +1,14 @@
name: Release Notes
on:
push:
branches:
- develop
jobs:
update_release_notes:
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-17
View File
@@ -1,17 +0,0 @@
name: SwiftLint
on:
pull_request:
branches: [ develop ]
paths:
- '.github/workflows/swiftlint-macos.yml'
- '.swiftlint.yml'
- '**/*.swift'
jobs:
lint:
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- name: Run SwiftLint
run: swiftlint lint --reporter github-actions-logging
+34
View File
@@ -0,0 +1,34 @@
name: Validations
on:
pull_request_target:
branches: [develop]
types: [opened, reoneped, edited, synchronized]
# workflow_dispatch:
# inputs:
# commit hash:
# description: "Commit hash"
# required: true
# default: ""
jobs:
lint:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Run SwiftLint
run: swiftlint lint --reporter github-actions-logging
danger:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Danger
uses: docker://frmeloni/danger-swift-with-swiftlint:1.3.1
with:
args: --failOnErrors --verbose
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+7 -2
View File
@@ -5,9 +5,12 @@ All notable changes to this project will be documented in this file
#### 🙌 New
#### 🔬Improvements
#### 🔬 Improvements
* [**369**](https://github.com/Juanpe/SkeletonView/pull/369): remove useless corner radius constraint - [@Juanpe](https://github.com/Juanpe)
* [**357**](https://github.com/Juanpe/SkeletonView/pull/357): Removed duplicate code in SkeletonCollectionDelegate. - [@keshavamurthy1](https://github.com/keshavamurthy1)
#### 🩹 Bug fixes
* [**359**](https://github.com/Juanpe/SkeletonView/pull/359): SkeletonView respecting Font's height, rather than the `UIView` actual height. - [@keshavamurthy1](https://github.com/keshavamurthy1)
## 📦 [1.11.0](https://github.com/Juanpe/SkeletonView/releases/tag/1.11.0)
@@ -15,6 +18,8 @@ All notable changes to this project will be documented in this file
#### 🙌 New
* [**339**](https://github.com/Juanpe/SkeletonView/pull/339): Add `hiddenWhenSkeletonIsActive` property - [@mohn93](https://github.com/mohn93)
* [**341**](https://github.com/Juanpe/SkeletonView/pull/341): Support autoreverses in gradient animations - [@Juanpe](https://github.com/Juanpe)
#### 🔬Improvements
* [**344**](https://github.com/Juanpe/SkeletonView/pull/344): Resize labels based on number of lines - [@Juanpe](https://github.com/Juanpe)
#### 🩹 Bug fixes
+8 -4
View File
@@ -1,8 +1,8 @@
![](Assets/header2.jpg)
<p align="center">
<a href="https://github.com/Juanpe/SkeletonView/workflows/build">
<img src="https://github.com/Juanpe/SkeletonView/workflows/build/badge.svg">
<a href="https://github.com/Juanpe/SkeletonView/actions?query=workflow%3ACI">
<img src="https://github.com/Juanpe/SkeletonView/workflows/CI/badge.svg">
</a>
<a href="https://codebeat.co/projects/github-com-juanpe-skeletonview-master"><img alt="codebeat badge" src="https://codebeat.co/badges/f854fdfd-31e5-4689-ba04-075d83653e60" /></a>
<img src="http://img.shields.io/badge/dependency%20manager-swiftpm%2Bcocoapods%2Bcarthage-green" />
@@ -28,7 +28,7 @@ Today almost all apps have async processes, such as API requests, long running p
Enjoy it! 🙂
##
##
- [🌟 Features](#-features)
- [🎬 Guides](#-guides)
- [📲 Installation](#-installation)
@@ -37,10 +37,14 @@ Enjoy it! 🙂
- [🔠 Texts](#-texts)
- [🦋 Appearance](#-appearance)
- [🎨 Custom colors](#-custom-colors)
- [ 🏃‍♀️ Animations](#%EF%B8%8F-animations)
- [Image captured from website https://flatuicolors.com](#image-captured-from-website-httpsflatuicolorscom)
- [🏃‍♀️ Animations](#-animations)
- [🏄 Transitions](#-transitions)
- [✨ Miscellaneous](#-miscellaneous)
- [❤️ Contributing](#-contributing)
- [📢 Mentions](#-mentions)
- [👨🏻‍💻 Author](#-author)
- [👮🏻 License](#-license)
+6 -4
View File
@@ -1,8 +1,8 @@
![](Assets/header2.jpg)
<p align="center">
<a href="https://github.com/Juanpe/SkeletonView/workflows/build">
<img src="https://github.com/Juanpe/SkeletonView/workflows/build/badge.svg">
<a href="https://github.com/Juanpe/SkeletonView/actions?query=workflow%3ACI">
<img src="https://github.com/Juanpe/SkeletonView/workflows/CI/badge.svg">
</a>
<a href="https://codebeat.co/projects/github-com-juanpe-skeletonview-master"><img alt="codebeat badge" src="https://codebeat.co/badges/f854fdfd-31e5-4689-ba04-075d83653e60" /></a>
<img src="http://img.shields.io/badge/dependency%20manager-swiftpm%2Bcocoapods%2Bcarthage-green" />
@@ -31,14 +31,16 @@ Enjoy it! 🙂
- [🎬 Videotutoriales](#-videotutoriales)
- [📲 Instalación](#-instalación)
- [🐒 ¿Cómo funciona?](#-cómo-funciona)
- [](#-1)
- [🌿 Colecciones](#-colecciones)
- [🔠 Textos](#-textos)
- [🦋 Apariencia](#-apariencia)
- [🎨 Colores](#-colors)
- [🎨 Colores](#-colores)
- [Imagen extraída de la web https://flatuicolors.com](#imagen-extraída-de-la-web-httpsflatuicolorscom)
- [🏃‍♀️ Animaciones](#-animaciones)
- [🏄 Transiciones](#-transiciones)
- [✨ Miscelánea](#-miscelánea)
- [❤️ Contribuir](#-contribuir)
- [❤️ Contributing](#-contributing)
- [📢 Menciones](#-menciones)
- [👨🏻‍💻 Autor](#-autor)
- [👮🏻 Licencia](#-licencia)
+32 -24
View File
@@ -1,8 +1,8 @@
![](Assets/header2.jpg)
<p align="center">
<a href="https://github.com/Juanpe/SkeletonView/workflows/build">
<img src="https://github.com/Juanpe/SkeletonView/workflows/build/badge.svg">
<a href="https://github.com/Juanpe/SkeletonView/actions?query=workflow%3ACI">
<img src="https://github.com/Juanpe/SkeletonView/workflows/CI/badge.svg">
</a>
<a href="https://codebeat.co/projects/github-com-juanpe-skeletonview-master"><img alt="codebeat badge" src="https://codebeat.co/badges/f854fdfd-31e5-4689-ba04-075d83653e60" /></a>
<img src="https://img.shields.io/badge/Swift-5-orange.svg" />
@@ -37,28 +37,36 @@ Aujourd'hui, presque toutes les applications ont des processus asynchrones, tels
Profitez-en! 🙂
* [Caractéristiques](#-caractéristiques)
* [Guides](#-guides)
* [Installation](#-installation)
* [Cocoapods](#utilisation-de-cocoapods)
* [Carthage](#utilisation-de-carthage)
* [SPM](#utilisation-du-gestionnaire-de-paquets-Swift)
* [Comment utiliser](#-mode-d'emploi)
* [Collections](#-collections)
* [Texte Multiligne](#-texte-multiligne)
* [Couleurs personnalisées](#-couleurs-personnalisées)
* [Présentation](#-présentation)
* [Animations personnalisées](#-animations-personnalisées)
* [Transitions](#-transitions)
* [Hiérarchie](#-hiérarchie)
* [Débugger](#-débugger)
* [Documentation](#-documentation)
* [Versions OS & SDK supportées](#-versions-os-et-sdk-supportées)
* [Prochaines étapes](#-prochaines-étapes)
* [Contribuer](#-contribuer)
* [Mentions](#-mentions)
* [Auteur](#-auteur)
* [Licence](#-licence)
- [🌟 Caractéristiques](#-caractéristiques)
- [🎬 Guides](#-guides)
- [📲 Installation](#-installation)
- [Utilisation de CocoaPods](#utilisation-de-cocoapods)
- [Utilisation de Carthage](#utilisation-de-carthage)
- [Utilisation du gestionnaire de paquets Swift](#utilisation-du-gestionnaire-de-paquets-swift)
- [🐒 Mode d'emploi](#-mode-demploi)
- [Extra](#extra)
- [Mise en page des vues squelettes](#mise-en-page-des-vues-squelettes)
- [Mise à jour de la configuration du squelette](#mise-à-jour-de-la-configuration-du-squelette)
- [🌿 Collections](#-collections)
- [UITableView](#uitableview)
- [UICollectionView](#uicollectionview)
- [📰 Texte multiligne](#-texte-multiligne)
- [🎛 Personnaliser](#-personnaliser)
- [🎨 Couleurs personnalisées](#-couleurs-personnalisées)
- [Image tirée du site web https://flatuicolors.com](#image-tirée-du-site-web-httpsflatuicolorscom)
- [🦋 Présentation](#-présentation)
- [🤓 Animations personnalisées](#-animations-personnalisées)
- [🏄 Transitions](#-transitions)
- [👨👧👦 Hiérarchie](#-hiérarchie)
- [🔬 Débugger](#-débugger)
- [📚 Documentation](#-documentation)
- [📋 Versions OS et SDK supportées](#-versions-os-et-sdk-supportées)
- [📬 Prochaines étapes](#-prochaines-étapes)
- [❤️ Contribuer](#-contribuer)
- [Projet généré avec SwiftPlate](#projet-généré-avec-swiftplate)
- [📢 Mentions](#-mentions)
- [👨🏻‍💻 Auteur](#-auteur)
- [👮🏻 Licence](#-licence)
## 🌟 Caractéristiques
+2 -2
View File
@@ -1,8 +1,8 @@
![](Assets/header2.jpg)
<p align="center">
<a href="https://github.com/Juanpe/SkeletonView/workflows/build">
<img src="https://github.com/Juanpe/SkeletonView/workflows/build/badge.svg">
<a href="https://github.com/Juanpe/SkeletonView/actions?query=workflow%3ACI">
<img src="https://github.com/Juanpe/SkeletonView/workflows/CI/badge.svg">
</a>
<a href="https://codebeat.co/projects/github-com-juanpe-skeletonview-master"><img alt="codebeat badge" src="https://codebeat.co/badges/f854fdfd-31e5-4689-ba04-075d83653e60" /></a>
<img src="https://img.shields.io/badge/Swift-5-orange.svg" />
+26 -21
View File
@@ -1,8 +1,8 @@
![](Assets/header2.jpg)
<p align="center">
<a href="https://github.com/Juanpe/SkeletonView/workflows/build">
<img src="https://github.com/Juanpe/SkeletonView/workflows/build/badge.svg">
<a href="https://github.com/Juanpe/SkeletonView/actions?query=workflow%3ACI">
<img src="https://github.com/Juanpe/SkeletonView/workflows/CI/badge.svg">
</a>
<a href="https://codebeat.co/projects/github-com-juanpe-skeletonview-master"><img alt="codebeat badge" src="https://codebeat.co/badges/f854fdfd-31e5-4689-ba04-075d83653e60" /></a>
<img src="https://img.shields.io/badge/Swift-5-orange.svg" />
@@ -36,25 +36,30 @@ Hoje, quase todos os apps têm processos assíncronos, como requisições de API
Aproveite! 🙂
* [Features](#-features)
* [Requerimentos](#-supported-os--sdk-versions)
* [Projeto de exemplo](#-example)
* [Instalação](#-installation)
* [Cocoapods](#using-cocoapods)
* [Carthage](#using-carthage)
* [Como usar](#-how-to-use)
* [Coleções](#-collections)
* [Texto em várias linhas](#-multiline-text)
* [Cores customizadas](#-custom-colors)
* [Aparência](#-appearance)
* [Animaçōes customizadas](#-custom-animations)
* [Hierarquia](#-hierarchy)
* [Documentação](#-documentation)
* [Próximos passos](#-next-steps)
* [Contribuindo](#-contributing)
* [Menções](#-mentions)
* [Autor](#-author)
* [Licença](#-license)
- [🌟 Features](#-features)
- [📋 Versões do SDK e OS suportados](#-versões-do-sdk-e-os-suportados)
- [🔮 Exemplo](#-exemplo)
- [📲 Instalação](#-instalação)
- [Usando CocoaPods](#usando-cocoapods)
- [Usando Carthage](#usando-carthage)
- [🐒 Como usar](#-como-usar)
- [🌿 Coleções](#-coleções)
- [UITableView](#uitableview)
- [UICollectionView](#uicollectionview)
- [📰 Texto de várias linhas](#-texto-de-várias-linhas)
- [🎛 Customização](#-customização)
- [🎨 Cores customizadas](#-cores-customizadas)
- [Imagem capturada do site https://flatuicolors.com](#imagem-capturada-do-site-httpsflatuicolorscom)
- [🦋 Aparência](#-aparência)
- [🤓 Animações customizadas](#-animações-customizadas)
- [👨‍👧‍👦 Hierarquia](#-hierarquia)
- [📚 Documentação](#-documentação)
- [📬 Próximos passos](#-próximos-passos)
- [❤️ Contribuindo](#-contribuindo)
- [Projeto gerado com SwiftPlate](#projeto-gerado-com-swiftplate)
- [📢 Menções](#-menções)
- [👨🏻‍💻 Autor](#-autor)
- [👮🏻 Licença](#-licença)
## 🌟 Features
+25 -20
View File
@@ -1,8 +1,8 @@
![](Assets/header2.jpg)
<p align="center">
<a href="https://github.com/Juanpe/SkeletonView/workflows/build">
<img src="https://github.com/Juanpe/SkeletonView/workflows/build/badge.svg">
<a href="https://github.com/Juanpe/SkeletonView/actions?query=workflow%3ACI">
<img src="https://github.com/Juanpe/SkeletonView/workflows/CI/badge.svg">
</a>
<a href="https://codebeat.co/projects/github-com-juanpe-skeletonview-master"><img alt="codebeat badge" src="https://codebeat.co/badges/f854fdfd-31e5-4689-ba04-075d83653e60" /></a>
<img src="https://img.shields.io/badge/Swift-5-orange.svg" />
@@ -36,24 +36,29 @@
好好享受! 🙂
* [特征](#-特征)
* [版本要求](#-版本要求)
* [示例项目](#-示例)
* [安装](#-安装)
* [Cocoapods](#使用-cocoapods)
* [Carthage](#使用-carthage)
* [如何使用](#-如何使用)
* [集合](#-集合)
* [多行文字](#-多行文字)
* [自定义颜色](#-自定义颜色)
* [自定义动画](#-自定义动画)
* [等级制度](#-等级制度)
* [文档](#-文档)
* [下一步](#-下一步)
* [特约](#-特约)
* [提及](#-提及)
* [作者](#-作者)
* [许可证](#-许可证)
- [🌟 特征](#-特征)
- [📋 版本要求](#-版本要求)
- [🔮 示例](#-示例)
- [📲 安装](#-安装)
- [使用 CocoaPods](#使用-cocoapods)
- [使用 Carthage](#使用-carthage)
- [🐒 如何使用](#-如何使用)
- [🌿 集合](#-集合)
- [UITableView](#uitableview)
- [UICollectionView](#uicollectionview)
- [📰 多行文字](#-多行文字)
- [🎛 定制](#-定制)
- [🎨 自定义颜色](#-自定义颜色)
- [从网站 https://flatuicolors.com捕获的图像](#从网站-httpsflatuicolorscom捕获的图像)
- [🤓 自定义动画](#-自定义动画)
- [👨‍👧‍👦 等级制度](#-等级制度)
- [📚 文档](#-文档)
- [📬 下一步](#-下一步)
- [❤️ 特约](#-特约)
- [使用 SwiftPlate 生成的项目](#使用-swiftplate-生成的项目)
- [📢 提及](#-提及)
- [👨🏻‍💻 作者](#-作者)
- [👮🏻 许可证](#-许可证)
## 🌟 特征
@@ -28,11 +28,11 @@ class SkeletonCollectionDataSource: NSObject {
// MARK: - UITableViewDataSource
extension SkeletonCollectionDataSource: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return originalTableViewDataSource?.numSections(in: tableView) ?? 0
originalTableViewDataSource?.numSections(in: tableView) ?? 0
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return originalTableViewDataSource?.collectionSkeletonView(tableView, numberOfRowsInSection: section) ?? 0
originalTableViewDataSource?.collectionSkeletonView(tableView, numberOfRowsInSection: section) ?? 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
@@ -46,11 +46,11 @@ extension SkeletonCollectionDataSource: UITableViewDataSource {
// MARK: - UICollectionViewDataSource
extension SkeletonCollectionDataSource: UICollectionViewDataSource {
func numberOfSections(in collectionView: UICollectionView) -> Int {
return originalCollectionViewDataSource?.numSections(in: collectionView) ?? 0
originalCollectionViewDataSource?.numSections(in: collectionView) ?? 0
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return originalCollectionViewDataSource?.collectionSkeletonView(collectionView, numberOfItemsInSection: section) ?? 0
originalCollectionViewDataSource?.collectionSkeletonView(collectionView, numberOfItemsInSection: section) ?? 0
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
@@ -21,23 +21,11 @@ class SkeletonCollectionDelegate: NSObject {
// MARK: - UITableViewDelegate
extension SkeletonCollectionDelegate: UITableViewDelegate {
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if let viewIdentifier = originalTableViewDelegate?.collectionSkeletonView(tableView, identifierForHeaderInSection: section),
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: viewIdentifier) {
skeletonViewIfContainerSkeletonIsActive(container: tableView, view: header)
return header
}
return nil
headerOrFooterView(tableView, for: originalTableViewDelegate?.collectionSkeletonView(tableView, identifierForHeaderInSection: section))
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
if let viewIdentifier = originalTableViewDelegate?.collectionSkeletonView(tableView, identifierForFooterInSection: section),
let footer = tableView.dequeueReusableHeaderFooterView(withIdentifier: viewIdentifier) {
skeletonViewIfContainerSkeletonIsActive(container: tableView, view: footer)
return footer
}
return nil
headerOrFooterView(tableView, for: originalTableViewDelegate?.collectionSkeletonView(tableView, identifierForHeaderInSection: section))
}
func tableView(_ tableView: UITableView, didEndDisplayingHeaderView view: UIView, forSection section: Int) {
@@ -54,6 +42,12 @@ extension SkeletonCollectionDelegate: UITableViewDelegate {
cell.hideSkeleton()
originalTableViewDelegate?.tableView?(tableView, didEndDisplaying: cell, forRowAt: indexPath)
}
private func headerOrFooterView(_ tableView: UITableView, for viewIdentifier: String? ) -> UIView? {
guard let viewIdentifier = viewIdentifier, let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: viewIdentifier) else { return nil }
skeletonViewIfContainerSkeletonIsActive(container: tableView, view: header)
return header
}
}
// MARK: - UICollectionViewDelegate
+2 -2
View File
@@ -4,10 +4,10 @@ import Foundation
extension Int {
var whitespace: String {
return whitespaces
whitespaces
}
var whitespaces: String {
return String(repeating: " ", count: self)
String(repeating: " ", count: self)
}
}
+3 -3
View File
@@ -31,11 +31,11 @@ extension UIColor {
}
public var lighter: UIColor {
return adjust(by: 1.35)
adjust(by: 1.35)
}
public var darker: UIColor {
return adjust(by: 0.94)
adjust(by: 0.94)
}
func adjust(by percent: CGFloat) -> UIColor {
@@ -45,7 +45,7 @@ extension UIColor {
}
func makeGradient() -> [UIColor] {
return [self, self.complementaryColor, self]
[self, self.complementaryColor, self]
}
}
@@ -19,7 +19,7 @@ extension UIView {
extension UILabel {
var desiredHeightBasedOnNumberOfLines: CGFloat {
let lineHeight = multilineTextFont?.lineHeight ?? SkeletonAppearance.default.multilineHeight
let lineHeight = constraintHeight ?? SkeletonAppearance.default.multilineHeight
let spaceNeededForEachLine = lineHeight * CGFloat(numberOfLines)
let spaceNeededForSpaces = skeletonLineSpacing * CGFloat(numberOfLines - 1)
let padding = paddingInsets.top + paddingInsets.bottom
@@ -11,7 +11,7 @@ enum MultilineAssociatedKeys {
}
protocol ContainsMultilineText {
var multilineTextFont: UIFont? { get }
var constraintHeight: CGFloat? { get }
var numLines: Int { get }
var lastLineFillingPercent: Int { get }
var multilineCornerRadius: Int { get }
+6 -6
View File
@@ -12,13 +12,13 @@ public extension UILabel {
@IBInspectable
var linesCornerRadius: Int {
get { return multilineCornerRadius }
set { multilineCornerRadius = min(newValue, 10) }
set { multilineCornerRadius = newValue }
}
@IBInspectable
var skeletonLineSpacing: CGFloat {
get { return multilineSpacing }
set { multilineSpacing = min(newValue, 10) }
set { multilineSpacing = newValue }
}
var skeletonPaddingInsets: UIEdgeInsets {
@@ -28,10 +28,10 @@ public extension UILabel {
}
extension UILabel: ContainsMultilineText {
var multilineTextFont: UIFont? {
return font
}
var constraintHeight: CGFloat? {
backupHeightConstraints.first?.constant
}
var numLines: Int {
return numberOfLines
}
@@ -12,13 +12,13 @@ public extension UITextView {
@IBInspectable
var linesCornerRadius: Int {
get { return multilineCornerRadius }
set { multilineCornerRadius = min(newValue, 10) }
set { multilineCornerRadius = newValue }
}
@IBInspectable
var skeletonLineSpacing: CGFloat {
get { return multilineSpacing }
set { multilineSpacing = min(newValue, 10) }
set { multilineSpacing = newValue }
}
var skeletonPaddingInsets: UIEdgeInsets {
@@ -28,8 +28,8 @@ public extension UITextView {
}
extension UITextView: ContainsMultilineText {
var multilineTextFont: UIFont? {
font
var constraintHeight: CGFloat? {
heightConstraints.first?.constant
}
var numLines: Int {
+2 -2
View File
@@ -83,7 +83,7 @@ struct SkeletonLayer {
/// If there is more than one line, or custom preferences have been set for a single line, draw custom layers
func addTextLinesIfNeeded() {
guard let textView = holderAsTextView else { return }
let lineHeight = textView.multilineTextFont?.lineHeight ?? SkeletonAppearance.default.multilineHeight
let lineHeight = textView.constraintHeight ?? SkeletonAppearance.default.multilineHeight
let config = SkeletonMultilinesLayerConfig(lines: textView.numLines,
lineHeight: lineHeight,
type: type,
@@ -98,7 +98,7 @@ struct SkeletonLayer {
func updateLinesIfNeeded() {
guard let textView = holderAsTextView else { return }
let lineHeight = textView.multilineTextFont?.lineHeight ?? SkeletonAppearance.default.multilineHeight
let lineHeight = textView.constraintHeight ?? SkeletonAppearance.default.multilineHeight
let config = SkeletonMultilinesLayerConfig(lines: textView.numLines,
lineHeight: lineHeight,
type: type,
+8 -8
View File
@@ -4,46 +4,46 @@ import UIKit
extension UIView {
@objc var subviewsSkeletonables: [UIView] {
return subviewsToSkeleton.filter { $0.isSkeletonable }
subviewsToSkeleton.filter { $0.isSkeletonable }
}
@objc var subviewsToSkeleton: [UIView] {
return subviews
subviews
}
}
extension UITableView {
override var subviewsToSkeleton: [UIView] {
return visibleCells + visibleSectionHeaders + visibleSectionFooters
visibleCells + visibleSectionHeaders + visibleSectionFooters
}
}
extension UITableViewCell {
override var subviewsToSkeleton: [UIView] {
return contentView.subviews
contentView.subviews
}
}
extension UITableViewHeaderFooterView {
override var subviewsToSkeleton: [UIView] {
return contentView.subviews
contentView.subviews
}
}
extension UICollectionView {
override var subviewsToSkeleton: [UIView] {
return subviews
subviews
}
}
extension UICollectionViewCell {
override var subviewsToSkeleton: [UIView] {
return contentView.subviews
contentView.subviews
}
}
extension UIStackView {
override var subviewsToSkeleton: [UIView] {
return arrangedSubviews
arrangedSubviews
}
}
+4
View File
@@ -1,6 +1,10 @@
default_platform(:ios)
podspec_name = "SkeletonView.podspec"
lane :bump_version do |options|
version_bump_podspec(path: @podspec_name, version_number: options[:next_version])
end
lane :release_current do
version = version_get_podspec(path: @podspec_name)
if git_tag_exists(tag: version)
+13
View File
@@ -0,0 +1,13 @@
if [[ ! $1 =~ (0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))? ]]; then
echo "No valid version supplied"
exit 1
fi
VERSION_NUMBER=$1
echo "Updating podspec version number to $VERSION_NUMBER"
cd SkeletonView &>/dev/null
cd .. &>/dev/null
sed -i '' -E "s/(s.version[[:space:]]+=[[:space:]]+').*(')/\1$VERSION_NUMBER\2/" SkeletonView.podspec