一旦初始视图加载,我试图让视图scrim
在视图控制器中的所有内容之后淡入5秒。这就是我现在所拥有的。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self setupAlarmPoll];
[self setupTimeLabel];
self.shouldRefresh = YES;
[self refreshSpotifyToken];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveNotification:)
name:@"backHome"
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveNotification:)
name:@"applicationDidEnterBackground"
object:nil];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5.0 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[UIView animateWithDuration:2.00 animations:^{
self.scrim.hidden = NO;
}];
});
然而,我并没有逐渐淡出。视图刚刚出现。如何在objective-c中完成此动画?
答案 0 :(得分:2)
是的,但它不是isHidden
您正在寻找的,它是视图的alpha
属性。你知道,isHidden
只会直接声明是否100%无法完全看到 。因此,您无法为isHidden
的{{1}}属性制作动画。但这是UIView
属性拯救的地方,因为它的用途与您alpha
尝试的完全一样。 alpha属性确定淡出 isHidden
在屏幕上的方式。因此,如果UIView
位于alpha
,则会隐藏它。因此,如果您将观看次数0
设置为alpha
,请使用您可以在视图中淡出的关注代码:
0
答案 1 :(得分:1)
视图的alpha
属性不可动画。但是,self.scrim.alpha = 0;
self.scrim.hidden = NO;
[UIView animateWithDuration:2.00
delay: 5.0
options: 0
animations:^{
self.scrim.alpha = 1.0;
}
completion: nil
];
属性 可动画。您需要:
通过这样做,您可以使视图不再隐藏,但完全透明。您将alpha属性设置为0.0到1.0的动画,使视图根据需要淡入。
代码如下所示:
dispatch_after
(请注意,长形式的animateWithDuration采用延迟参数,因此您不必在调用import bs4 as bs
import sys
import urllib.request
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
class Page(QWebEnginePage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebEnginePage.__init__(self)
self.html = ''
self.loadFinished.connect(self._on_load_finished)
self.load(QUrl(url))
self.app.exec_()
def _on_load_finished(self):
self.html = self.toHtml(self.Callable)
print('Load finished')
def Callable(self, html_str):
self.html = html_str
self.app.quit()
def main():
page = Page('http://www.wsj.com/mdc/public/npage/2_3023_creditdervs.html')
soup = bs.BeautifulSoup(page.html, 'html.parser')
tableSup = soup.find_all("td",{"class": "col2 yellowBack"})
print(tableSup)
if __name__ == '__main__': main()
时将其包装。)
另外,为什么要在Objective-C中进行新的开发?
答案 2 :(得分:1)
像其他人提到的那样动画alpha
,或者transitionWithView
使用UIViewAnimationOptionTransitionCrossDissolve
:
- (void)viewDidLoad {
[super viewDidLoad];
self.scrim.hidden = true;
}
- (void)viewDidAppear:(BOOL)animated {
[UIView transitionWithView:self.scrim duration:2 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
self.scrim.hidden = false;
} completion:nil];
}