小编Sha*_*ney的帖子

C#内联lambda评估

在使用C#进行编程的不同时间,我发现自己处于需要定义lambda(或匿名委托)并在同一行中调用它的情况.在这一点上,我能够做到这一点的"最干净"的方式是这样的:

bool foo_equals_bar = new Func<String, bool>(str => str.Equals("foo"))("bar");
Run Code Online (Sandbox Code Playgroud)

我希望能够写下以下内容:

bool foo_equals_bar = (str => str.Equals("foo"))("bar");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎不起作用.我会很高兴知道:

  1. 有没有更简单的方法来编写上面的代码行?
  2. (str => str.Equals("foo"))这样返回的是什么,可用于初始化a Func<String, bool>,但不能像a一样进行求值Func<String, bool>

我应该指出我在C#3(VS2008)中工作,所以如果解决方案只存在于C#4中,请提及.(我仍然想知道,即使目前我无法获得解决方案).

谢谢

c# lambda

18
推荐指数
4
解决办法
1万
查看次数

在动画父UIView的帧(大小)动画时,自动调整UILabel的帧

我有一个父UIView,其子UIView(在下面的代码中使用UILabel),其框架设置为父的边界,其autoresizingMask设置为灵活的宽度和高度:

UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
UILabel* childLabel = [[UILabel alloc] initWithFrame:parentView.bounds];
childLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
childLabel.textAlignment = UITextAlignmentCenter;
childLabel.text = @"Hello";
Run Code Online (Sandbox Code Playgroud)

我希望能够为父视图的框架设置动画,特别是其大小,并将子视图调整为动画的一部分:

[UIView animateWithDuration:1.0 animations:^{ parentView.frame = CGRectMake(0, 0, 160, 240); }];
Run Code Online (Sandbox Code Playgroud)

作为这个动画的结果,我希望UILabel的文本与父视图的动画一起动画,所以在视觉上你会看到文本从(160,240)的中心移动到(80,120).但是,不会动画显示子视图的帧会立即设置为动画结束时应该具有的值,因此您可以看到文本的位置在动画开始时立即跳转.

有没有办法让子视图作为动画的一部分自动调整大小?

cocoa-touch core-animation ios

14
推荐指数
1
解决办法
3617
查看次数

标签 统计

c# ×1

cocoa-touch ×1

core-animation ×1

ios ×1

lambda ×1