我收到以下错误
无法指定'StarButton'类型的值来键入'CAAnimationDelegate?'
在这个CABasicAnimation块的最后一行:
let fillCircle = CABasicAnimation(keyPath: "opacity")
fillCircle.toValue = 0
fillCircle.duration = 0.3
fillCircle.setValue(notFavoriteKey, forKey: starKey)
fillCircle.delegate = self // this is where the error is thrown
Run Code Online (Sandbox Code Playgroud)
self是一个自定义UIButton类.这在以前版本的Swift中不是问题...对解决方案的任何建议?
UPDATE
以下是StarButton类源文件的可下载链接,以供最佳参考:
https://www.dropbox.com/s/gvc2sky05f4p3au/StarButton.swift?dl=0
据我所知,基于JWT的授权系统通常保留给SPA'(你知道,一个视图,一个React/Angular/Vue应用程序,一个膨胀的app.js文件),但是我试图利用JWT的魔力使用稍微独立的结构化应用程序
结构体
blade.php我没有从我的Laravel应用程序中提供一个获取一个Vue应用程序和实例的视图,而是尝试提供两个独立的blade.php视图,每个视图都作为自己的独立视图运行Vue SPA:一个用于应用程序的外部(pre-auth),另一个用于应用程序的内部(授权后).
目前的应用状态
为了启动我应用程序的身份验证系统,我使用了Tymon的jwt-auth lib(一个漂亮的lib btw)并将所有内容绑在一起(如前所述)Vue/Vuex.一切都按预期工作,在我Register和Login组件中我能够点击我的api,得到JWT作为响应,在本地存储然后将所述令牌附加到我的Axios标题中,允许所有后续请求包含此标记.
困境
现在我正处于十字路口.我想要提供的post-auth路由/视图受自定义JWT中间件的保护,如果没有显示有效令牌,该中间件会重定向:
Route::get('/home', 'Auth\HomeController@home')->middleware('jwt');
Run Code Online (Sandbox Code Playgroud)
中间件
class JWT
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
JWTAuth::parseToken()->authenticate();
return $next($request);
}
}
Run Code Online (Sandbox Code Playgroud)
我的pre-auth视图及其所有路由都受到Laravel本机访客RedirectIfAuthenticated中间件的保护,现在由JWT 守护:
class RedirectIfAuthenticated
{
/**
* Handle an incoming request. …Run Code Online (Sandbox Code Playgroud) 我有一个动画,其中div滑出视图,但是当动画完成时,div只返回到视图中的原点位置.如何在动画结束后使用CSS完全删除div或隐藏它?
这是标记:
<div class="container">
<div class="slide-box" id="slide-box""></div>
</div>
Run Code Online (Sandbox Code Playgroud)
和css:
.slide-box {
position: relative;
width: 100px;
height: 100px;
background-image: url(../pics/red.png);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
animation: slide 5s linear 1;
}
@keyframes slide {
0% {
left: 0;
}
20% {
left: 20%;
}
40% {
left: 40%;
}
60% {
left: 60%;
}
80% {
left: 80%;
}
100% {
left: 100%;
overflow: hidden;
visibility: hidden;
}
}
Run Code Online (Sandbox Code Playgroud)
我不希望它在动画的持续时间内淡出,我只是希望它在关键帧中达到100%时消失.提前谢谢!