如何将2个属性绑定到单个TextBlock.Text(例如,名字和姓氏或当前值和最大值)?
就像是:
// IValueConverter
public object Convert( .... )
{
return string.Format("{0} (max: {1})", currentValue, maxValue);
}
Run Code Online (Sandbox Code Playgroud)
问题是我想在TextBlock.Text进行更新currentValue
或 maxValue
改变.那么如何使用数据绑定监听2个或更多属性的更改?
除了用户之外还有其他方式IValueConverter
吗?
设置全景项目标题的字体大小的最简单方法是什么,以便它可以用于我的应用程序中的所有项目标题?
是否有用于解析GPX文件的Java库?我需要将许多GPX文件解析为我们自己的数据结构(我们自己的数据库).
如何在Windows Phone 7上将Microsoft.Phone.Controls.Maps.Map控件缩放到正确的缩放级别?
我有一个GeoCoordinates的LocationCollection,我自己计算了中心,但现在我如何计算正确的缩放级别以适应LocationCollection?
PS是否有开箱即用的方法来计算GeoCoordinates的中心,所以我不必自己计算?
编辑:我找到了另一个很好的解决方案:http://4mkmobile.com/2010/09/quick-tip-position-a-map-based-on-a-collection-of-pushpins/
map.SetView(LocationRect.CreateLocationRect(points));
是否有一种简单的方法可以在iOS开箱后的特定延迟后执行方法?
在iPhone上我会这样做:
[self performSelector:@selector(connectSensor) withObject:nil afterDelay:2.5];
然后,它将connectSensor
在2.5秒后执行主线程(UI线程)上的方法.并且因为它是在主线程上自动调度的,所以您不必担心跨线程问题.(还有一个performSelectorOnBackground
版本)
那么我如何在WP7中正确地做到这一点?
目前我正在用计时器完成这项工作,但我不确定这是否是一个很好的解决方案.
private Timer timer;
private void DoSomethingAfterDaly()
{
// ... do something here
timer = new Timer( (o) => Deployment.Current.Dispatcher.BeginInvoke(() => NavigationService.GoBack()), null, 2500, Timeout.Infinite);
}
Run Code Online (Sandbox Code Playgroud)
如何将其封装到扩展方法中,以便我可以调用this.Perform(MyMethod, null, 2500);
?
是否有可能构建我们的应用程序的Ad Hoc构建并将其发送给我们的beta测试人员?这甚至可能吗?
编辑:此问题也适用于正常声明的属性(不仅适用于类属性)!
原帖:
让我说我有公共类方法sharedInstance
,目前实现为getter方法:
@interface MyClass
+ (instancetype)sharedInstance;
- (void)doSomething;
@end
@implementation MyClass
+ (instancetype)sharedInstance {
static MyClass *shared = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
shared = [[MyClass alloc] init];
});
return shared;
}
@end
Run Code Online (Sandbox Code Playgroud)
在Swift 3.0中访问此方法将如下所示: MyClass.shared().doSomething()
因此,为了使它更加开放,我们应该将类方法更改为类属性(Xcode 8中的新属性.但实际上我无法在Apple Docu中找到它,仅在WWDC 2016视频中找到它)
@interface MyClass
@property (class, nonatomic, readonly) MyClass *sharedInstance;
- (void)doSomething;
@end
// implementation stays the same
Run Code Online (Sandbox Code Playgroud)
现在在Swift代码中: MyClass.shared.doSomething()
那么nonatomic/atomic
属性修饰符(不知道确切的术语)甚至对我在objc中实现的getter方法有意义吗?
如何在WP7中使用Blend在不同的视觉状态下设置不同的本地化字符串而不使用任何代码?
我可以在不同的视觉状态下设置不同的非本地化字符串(虽然它会闪烁).这有效,但本地化字符串怎么样?
如果我在Blend中使用数据绑定更改字符串,Blend只会覆盖Base状态下的数据绑定,而不是我正在录制的实际状态.
编辑:
这是我本地化我的字符串的方式:
我有一个名为的资源文件AppPresources.resx
.然后我会在代码中执行此操作:
// setting localized button title
mainButton.Content = AppResources.MainButtonText;
Run Code Online (Sandbox Code Playgroud)
然后我有一个GlobalViewModelLocator
来自MVVM Light Toolkit的具有以下属性的数据绑定.
private static AppResources _localizedStrings;
public AppResources LocalizedStrings
{
get
{
if (_localizedStrings == null)
{
_localizedStrings = new AppResources();
}
return _localizedStrings;
}
}
Run Code Online (Sandbox Code Playgroud)
并在xaml文件中:
<Button x:Name="mainButton" Content="{Binding LocalizedStrings.MainButtonText, Mode=OneWay, Source={StaticResource Locator}}" ... />
Run Code Online (Sandbox Code Playgroud) 在ObjC中,您只需使用类方法调用类方法即可NSObject
.
[Machine performSelector:@selector(calculate:) withObject:num];
Run Code Online (Sandbox Code Playgroud)
但是你如何在Swift 2.2中做到这一点?
@objc(Machine) // put it here, so you can simply copy/paste into Playground
class Machine: NSObject {
static func calculate(param: NSNumber) -> String {
if param.integerValue > 5 {
return "42"
}
return "42" // there is only 1 answer to all the questions :D
}
}
if let aClass = NSClassFromString("Machine") {
let sel = #selector(Machine.calculate(_:))
let num = NSNumber(integer: 1337)
let answer = aClass.performSelector(sel, withObject: num) // compiler error
// let …
Run Code Online (Sandbox Code Playgroud) 我想在一个简单的UIImageView上构建一个脉冲动画.ImageView会变大一点,然后再回到原来的大小.
我使用了以下代码:
- (void) doCoolAnimation {
[UIView beginAnimations:@"glowingAnimation" context:nil];
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationRepeatCount:INT_MAX];
[UIView setAnimationDuration:0.25];
[UIView setAnimationBeginsFromCurrentState:YES];
imageView.transform = CGAffineTransformMakeScale(1.15, 1.15);
[UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)
这在iOS3上工作正常,但仅在iOS4上有效.
我有一个UITabBarController,其中包含2个视图.第一个是带有动画的imageView,一旦加载视图,动画就会启动.但是在我切换到第二个视图(使用TabBar)并返回后,动画在iOS4上不再运行了.(但在iOS3上我可以在这两个视图之间切换,动画效果仍然很好.)
我也尝试过每秒调用doCoolAnimation的计时器,但这无助于再次启动动画.
有人可以解释为什么在视图切换后动画消失了吗?是否有可以使其在iOS4上运行的解决方法?
ios ×2
swift ×2
animation ×1
api ×1
beta ×1
beta-testing ×1
bing-maps ×1
data-binding ×1
font-size ×1
gpx ×1
iphone ×1
java ×1
localization ×1
location ×1
mvvm ×1
objective-c ×1
parsing ×1
reflection ×1
swift2.2 ×1
textblock ×1
timer ×1
zoom ×1