<a href="https://www.ramotion.com/agency/app-development?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition"><img src="https://github.com/Ramotion/folding-cell/blob/master/header.png"></a>
<a href="https://github.com/Ramotion/fpreview-transition">
<img align="left" src="https://github.com/Ramotion/preview-transition/blob/master/preview-transition.gif" width="480" height="360" /></a>
<p><h1 align="left">PREVIEW TRANSITION</h1></p>
<h4>Preview Transition is a simple preview gallery UI controller with animated tranisitions</h4>
___
<p><h6>We specialize in the designing and coding of custom UI for Mobile Apps and Websites.</h6>
<a href="https://www.ramotion.com/agency/app-development?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition">
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
</p>
<p><h6>Stay tuned for the latest updates:</h6>
<a href="https://goo.gl/rPFpid" >
<img src="https://i.imgur.com/ziSqeSo.png/" width="156" height="28"></a></p>
</br>
[![Twitter](https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat)](http://twitter.com/Ramotion)
[![Travis](https://img.shields.io/travis/Ramotion/preview-transition.svg)](https://travis-ci.org/Ramotion/preview-transition.svg?branch=master)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Ramotion/preview-transition)
[![CocoaPods](https://img.shields.io/cocoapods/p/PreviewTransition.svg)](https://cocoapods.org/pods/PreviewTransition)
[![CocoaPods](https://img.shields.io/cocoapods/v/PreviewTransition.svg)](http://cocoapods.org/pods/PreviewTransition)
[![codebeat badge](https://codebeat.co/badges/b99f71fe-b7e7-4a08-94bd-d98307d176ea)](https://codebeat.co/projects/github-com-ramotion-preview-transition)
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/Ramotion)
## About
This project is maintained by Ramotion, Inc.<br>
We specialize in the designing and coding of custom UI for Mobile Apps and Websites.<br>
**Looking for developers for your project?**<br>
This project is maintained by Ramotion, Inc. We specialize in the designing and coding of custom UI for Mobile Apps and Websites.
<a href="https://dev.ramotion.com?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition">
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a> <br>
The [iPhone mockup](https://store.ramotion.com/product/iphone-x-clay-mockups?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition) available [here](https://store.ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=preview-transition).
## Requirements
- iOS 9.0+
- Xcode 9
## Licence
Preview-transition is released under the MIT license.
See [LICENSE](./LICENSE) for details.
## Installation
Just add the Source folder to your project or use [CocoaPods](https://cocoapods.org) like this:
``` ruby
pod "PreviewTransition"
```
or [Carthage](https://github.com/Carthage/Carthage) users can simply add to their `Cartfile`:
```
github "Ramotion/preview-transition"
```
## Usage
1) ``` import PreviewTransition ```
2) Create UITableViewController inherit, inheriting from ```PTTableViewController```
3) Add UITableViewDelegate methods
```swift
public override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return <RowsCount>
}
public override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return tableView.dequeueReusableCellWithIdentifier(<CellIdentifier>, forIndexPath: indexPath)
}
```
4) add a ParallaxCell
storyboards:
create a cell and inherit from ```ParallaxCell```; don't forget set the identifier ```<CellIdentifier>```
or programmatically:
register a cell in viewDidLoad ```tableView.registerClass(ParallaxCell, forCellReuseIdentifier:<CellIdentifier>)```
5) set cell height
6) create image names (image sizes must be equal to screen size or bigger)
```swift
let images = [image_name, image_name, image_name, image_name, image_name] // image names
```
7) set image and text for ParallaxCell
```swift
public override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
guard let cell = cell as? ParallaxCell else {
return
}
let imageName = images[indexPath.row]
if let image = UIImage(named: imageName) {
cell.setImage(image, title: <SetText>)
}
}
```
your tableViewController should look like [DemoTableViewController](https://github.com/Ramotion/preview-transition/blob/master/PreviewTransitionDemo/PreviewTransitionDemo/ViewController/DemoTableViewController.swift)
Method ```public override func tableView(tableView: didSelectRowAtIndexPath indexPath:)``` we will add later. (step 10)
8) Create UIViewController, inheriting from ```PTDetailViewController```
9) Add action for backButton and call ```popViewController()```
```swift
func backButtonHandler() {
popViewController()
}
```
10) Push this UIViewController in UITableViewController. Add method
```swift
public override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// create viewController
let <YourViewController> = storyboard?.instantiateViewControllerWithIdentifier(<identifier>)
if case let viewController as <YourViewController> = viewController {
pushViewController(viewController)
}
}
```
11) Configure UINavigationBar
```swift
// transparent background
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().translucent = true
UINavigationBar.appearance().tintColor = .whiteColor()
// set font
if let font = UIFont(name: <Font name> , size: 18) {
UINavigationBar.appearance().titleTextAttributes = [
NSForegroundColorAttributeName : UIColor.whiteColor(),
NSFontAttributeName : font
]
}
```
## ð License
Preview Transition is released under the MIT license.
See [LICENSE](./LICENSE) for details.
This library is a part of a <a href="https://github.com/Ramotion/swift-ui-animation-components-and-libraries"><b>selection of our best UI open-source projects.</b></a>
If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com
## ð± Get the Showroom App for iOS to give it a try
Try this UI component and more like this in our iOS app. Contact us if interested.
<a href="https://itunes.apple.com/app/apple-store/id1182360240?pt=550053&ct=preview-transition&mt=8" >
<img src="https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png" width="117" height="34"></a>
<a href="https://www.ramotion.com/agency/app-development?utm_source=gthb&utm_medium=repo&utm_campaign=preview-transition">
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
<br>
<br>
iOS-展示图片效果-20preview-transition
需积分: 0 13 浏览量
更新于2023-05-20
收藏 7.98MB ZIP 举报
在iOS应用开发中,展示图片效果是一个非常常见的需求,尤其在设计用户界面和增强用户体验时。"iOS-展示图片效果-20preview-transition"这个主题着重于如何在iOS应用中实现图片预览以及过渡动画。这包括了图片的加载、显示、预览以及在不同视图间平滑过渡的技术。
我们要了解基本的图片加载和显示。在iOS中,UIImage类是用于处理图像的主要对象,可以用来加载和显示图片。你可以通过初始化一个UIImage对象并传入图片的URL或本地路径来加载图片。同时,UIImageView是展示图片的UI组件,它支持显示UIImage对象,并提供了诸如调整图片大小、裁剪等特性。
当涉及到图片预览时,一种常见的做法是使用UIPreviewAction和UIPreviewActionItem,这是iOS中的预览交互功能,让用户能够在不离开当前界面的情况下预览内容。你可以创建一个UIPreviewAction对象,设置其标题和执行动作,然后将这些动作添加到UIPreviewActionItem中。在处理图片预览时,动作可能会打开一个新的ViewController,其中包含预览的图片。
过渡动画是iOS中提升用户体验的关键部分。在图片预览中,我们可以使用CATransition或者UIView动画来实现平滑的过渡效果。CATransition是Core Animation层的一部分,可以创建各种复杂的过渡效果,如推拉、溶解等。而UIView动画则更简单,适用于简单的淡入淡出、移动和缩放效果。在设置过渡动画时,需要指定源视图、目标视图、动画类型和持续时间。
在实际操作中,我们可能还需要处理一些性能优化问题,比如利用内存缓存(如NSCache)和磁盘缓存(如SDWebImage库)来提高图片加载速度,避免每次加载都从网络获取。另外,对于大图处理,可以考虑使用GPUImage框架进行图片的缩放、裁剪和滤镜应用,以减轻CPU负担。
为了实现上述功能,开发者需要掌握Swift或Objective-C编程语言,理解UIKit框架,熟悉Core Animation和Core Graphics的概念。此外,对MVVM或MVC设计模式的理解也有助于构建清晰的代码结构。
"iOS-展示图片效果-20preview-transition"这一主题涵盖了iOS开发中的多个关键知识点,包括图片加载与显示、预览交互、过渡动画以及性能优化。掌握这些技能,将有助于你打造更加动态和吸引人的iOS应用。