我的目标是在启动应用程序时从类似于跳板图标的视图为用户提供缩放模式转换.
呈现的视图控制器正确放大,但导航栏在状态栏下位置错误.调用[transitionContext completeTransition:finished];后,该位置得到纠正.如何从过渡开始就做到正确?
这是一个错误的屏幕录制:http://youtu.be/7LKU4lzb-uw(小故障在录音的第6秒)
UIViewControllerAnimatedTransitioning代码:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *container = [transitionContext containerView];
CGPoint viewCenter = self.view.center;
CGSize viewSize = self.view.frame.size;
CGSize controllerSize = toViewController.view.frame.size;
CGFloat controllerFromX = viewCenter.x - (controllerSize.width / 2);
CGFloat controllerFromY = viewCenter.y - (controllerSize.height / 2);
CGAffineTransform transform = CGAffineTransformMakeTranslation(controllerFromX, controllerFromY);
transform = CGAffineTransformScale(transform, viewSize.width / controllerSize.width, viewSize.height / controllerSize.height);
if (self.reverse) {
[container insertSubview:toViewController.view belowSubview:fromViewController.view];
} else {
toViewController.view.transform = transform;
[container …
Run Code Online (Sandbox Code Playgroud) 我想在JUnit中编写Selenium测试用例并在多个浏览器中测试我的项目,我想利用所有Selenium驱动程序实现相同接口的事实.
每个测试用例应如下所示:
package fm;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import static org.junit.Assert.*;
public class HomepageTest {
@Test
public void testTitle(WebDriver driver) {
driver.get("http://localhost/");
assertEquals("Foo", driver.getTitle());
}
@Test
public void testSearchForm(WebDriver driver) {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
传递的WebDriver实现应该集中控制.我可能需要覆盖一些JUnit行为,我希望它是可能的.
我想这样做是为了避免两件事:
有人知道我该怎么办?谢谢.
我在Chrome 19中遇到了一个奇怪的错误.我通过pushState支持实现了一个完整的AJAX网站(每个非外部链接都通过AJAX请求打开).我通过JSON格式在AJAX中传输HTML片段.
当我通过外部链接离开我的网站然后返回时,Chrome会呈现该网址的缓存数据 - 问题是,他缓存了JSON内容并显示了该内容,而不是完整的网页.
这可以通过这些步骤重现(更新:从那时起我在我的网站上删除了AJAX功能,因此不再出现此错误):
我尝试使用Cache-Control发送所有AJAX响应:no-cache,但没有效果.
Firefox 12工作正常.
我正在寻找一种最佳方式来存储有关哪些用户已经阅读了我正在构建的简单论坛引擎上的帖子的信息,因此我可以为他们标记新帖子.我正在寻找空间和性能优化的方式.
首先想到的是使用post_id和user_id列创建表的纯粹方法,其中每行代表用户的阅读帖子.但这会导致大量数据插入并对数据库造成性能压力.点击"全部标记为已读"后插入更多数据.如果所有用户都已阅读所有帖子,则表示数据库中的(用户数)*(帖子计数)行.
可以优化此方法以存储每个线程和每个用户的时间戳,并在每次用户阅读新帖子时更新这些时间戳.但它仍然是很多数据.这意味着(用户数)*(线程数)行.
我可以简化这个以在论坛(即线程类别)级别存储"上次访问"时间戳.这意味着(用户数)*(论坛数量),这并不是那么糟糕,但有一个问题我应该何时更新此时间戳,因此对用户来说不会太混淆.
谢谢你的任何想法.
我正在研究Java Server Faces的学校项目,因为我是PHP的开发人员,所以我无法掌握JSF的整体概念.
在通常的PHP MVC框架中,请求的URL通过路由系统与调用的类方法(控制器生命周期)和呈现的模板绑定,因此我可以在将任何输出发送到浏览器之前触发一些逻辑,例如执行重定向.
如果我错了,请纠正我 - 我无法在JSF中识别出这种模式.URL被绑定到渲染模板(在我的源代码中是faces/index.xhtml - > index.xhtml),如果我想在支持bean中调用一些方法(JSF相当于控制器),我可以在模板中调用任何getter( #{bean.property}),但是例如我不知道在请求URL时如何执行重定向.单击<h:commandLink>
或后,我能够在我的支持bean中执行一些自定义方法<h:commandButton>
,但在查看生成的HTML(总是看起来像提交表单)之后,我认为这不是唯一的方法.
我还查看了faces-config.xml,它看起来像配置多步表单向导的好方法,但我不知道如何使用这种机制来定义整个Web的结构.它主要用于哪个?定义网址?
另外,我想了解一下依赖注入系统.当我用@EJB注释它时,我不知道是什么将我的外观注入到支持的bean类属性中.如果我使用PersistenceContext注释"em"属性,我不知道什么机制将EntityManager注入到我的外观中.如何在没有这个DI容器(Glassfish?)的单元测试中改变这些机制.
请问,任何人都可以为我澄清这些东西如何以友好的PHP方式工作?谢谢!:)