当用户按下按钮然后设置宽度动画时,我试图给我的UIButton一个新的背景图像.问题是按钮没有缩放图像(我只使用视网膜图像).
点击之前:

点击后:

以及使事情发生的代码:
UIImage *buttonProfileDefault = [[UIImage imageNamed:@"Profile_Button_Default"] resizableImageWithCapInsets:UIEdgeInsetsMake(3, 3, 3, 3)];
[self.profileButton setBackgroundImage:buttonProfileDefault forState:UIControlStateNormal];
[self.profileButton removeConstraint:self.profileButtonConstraint];
// Animate
CGRect originalFrame = self.profileButton.frame;
originalFrame.size.width = 40;
[UIView animateWithDuration:0.2f
animations:^{
self.profileButton.frame = originalFrame;
}
completion:^(BOOL finished) {
}];
Run Code Online (Sandbox Code Playgroud) 我想在我的自定义drawRect方法中检查我的自定义NSButton当前是否处于按下状态(用户正在点击它).像这样的东西:
- (void)drawRect:(NSRect)dirtyRect{
if ([self buttonIsInPressedState]) {
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
Run Code Online (Sandbox Code Playgroud)
你会怎么检查这样的事情?可能吗?
解
我最终检查了按钮单元格上的mouseDownFlags.不知道这是否是"正确"的方式,所以如果你有更好的建议,请告诉我:
- (void)drawRect:(NSRect)dirtyRect{
if ([self.cell mouseDownFlags] == 0) {
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
Run Code Online (Sandbox Code Playgroud) I'm following this tutorial from Railscast on how to deploy your rails-app to EC2:
http://railscasts.com/episodes/347-rubber-and-amazon-ec2
I did something and now I keep getting this error whenever I try to deploy:
connection failed for: production.foo.com (Net::SSH::AuthenticationFailed: root)
Run Code Online (Sandbox Code Playgroud)
It's a very obscure error and seems to be specifically mac related. Another user following the tutorial also had that error:
http://railscasts.com/episodes/347-rubber-and-amazon-ec2?view=comments#comment_158643.
And this guy experienced something similar as well:
https://github.com/rubber/rubber/issues/182.
I've been through every blog post on this issue and nothing …
我正在创建一个包含大量 HTML(数千个 div 元素)的网站。没有真正的方法可以摆脱所有这些 div 元素,并且它使站点加载非常缓慢(7-12 秒)。我试过在网站上放置缓存,但它没有帮助,因为网站仍然必须呈现所有这些 div 元素。
更具体地说,它有 140 个下拉列表,每个包含 100-800 个 div 元素,它们需要很长时间才能显示。
我的想法是在页面加载后呈现下拉列表中的 div 元素,但我不知道该怎么做?
在页面加载后呈现部分部分的最简单方法是什么?顺便说一句,我正在使用 Rails 4。
关于如何处理大量 HTML 的任何其他建议?
我需要在将某个孩子添加到Firebase路径时向用户发送iOS推送通知.
我在想,最好的方法是在Heroku上创建一个Node.js工作人员,它会监听变化并使用Urban Airship发送通知.
我不确定从Heroku上的Node.js工作者那里听Firebase更改的最佳方法是什么.我不熟悉heroku worker和Node.js.
谁能给我一些指示?例子?
我有一个节点工作者在Heroku的应用程序旁边运行,它可以监听Firebase数据库上的某些路径.问题是听这些路径似乎占用了大量的内存.如果我在其中的13000个项目的路径上侦听更改,如果我的Heroku服务器占用总内存的147mb:
setInterval =>
@ref.log_memory('Listener interval')
, 1000
@ref.firebaseClient.child('listings').on 'child_changed', (snap) =>
@ref.log('child_changed')
Run Code Online (Sandbox Code Playgroud)
输出:
22:39:07 worker.1 | info: Memory: 35mb total - 66mb rss - 23mb heapUsed
22:39:08 worker.1 | info: Memory: 36mb total - 67mb rss - 18mb heapUsed
22:39:09 worker.1 | info: Memory: 37mb total - 69mb rss - 23mb heapUsed
22:39:10 worker.1 | info: Memory: 54mb total - 72mb rss - 25mb heapUsed
22:39:11 worker.1 | info: Memory: 54mb total - 82mb rss - 33mb heapUsed
22:39:13 worker.1 …Run Code Online (Sandbox Code Playgroud) 我有一个iOS市场应用程序,我正在收听该市场上待售的每件商品的变化.更确切地说,我正在听取该项目上的孩子是否会改变或被移除.
问题是我想要在添加孩子时收听.在Firebase上添加子项时监听的特殊之处在于,当您第一次设置侦听器时,您将获得该节点上的所有兄弟节点.
项目上的孩子不是同一项目的列表,所以我不能听一些时间戳后添加的孩子.我正在考虑做这样的 事情并忽略那些最初的孩子.这似乎是一个很大的浪费,因为我基本上是从Firebase中取出两次.一次,FEventTypeValue一次FEventTypeChildAdded.
我想要收听的项目是在Feed中加载的项目.它很可能是几百件物品,但可能是数千件物品.
你会怎么做?我是否应该忘记所有关于倾听额外孩子的问题,还是有一个合适的解决方案?
编辑(添加示例代码):
这就是我在Firebase上获取特定项目的数据的方法.
var ref = new Firebase('https://<your-Firebase>.firebaseio.com');
ref.child('listings/-KB9ZqLZBEskoUihb-yR').once('value', function(snapshot) {
listing = snapshot.val();
});
Run Code Online (Sandbox Code Playgroud)
在这里,我想听一个新的孩子被添加到该项目时:
ref.child('listings/-KB9ZqLZBEskoUihb-yR').on('child_added', function(snapshot) {
listing[snapshot.key()] = snapshot.val()
});
Run Code Online (Sandbox Code Playgroud)
问题是,监听在该节点上添加的项目会再次获取所有子节点,这似乎是一个巨大的浪费.你会如何应对这种情况?
我该怎么做?我想保留键盘的所有功能(拼写检查,能够更改语言等),但我想自定义按钮和背景的外观.
我该怎么做?
我需要使用我的Heroku/Rails应用程序连接到API,我需要有静态IP.
我知道附加组件proximo - https://devcenter.heroku.com/articles/proximo - 但它的价格非常高,所以这是不可能的.
在我的情况下,大多数人最终部署到EC2而使用弹性IP作为他们的静态IP.我也试过这个并且它有效,但我发现整个EC2的流程真的很麻烦.
我已经在一些答案中读到可以设置EC2服务器并将其用作Heroku/Rails应用程序的代理 - 用于SFTP的Heroku静态IP - 但对于不是非常服务器的人来说这听起来非常神秘 -精明.
有人可以提供有关如何设置Heroku/Rails应用程序以将EC2实例用作代理的分步教程吗?
我正在使用本地JSON文件并尝试将其映射到关系映射.它没有关系它工作正常,但一旦我添加了关系,我得到一个错误.
JSON:
https://gist.github.com/4675414
码:
// Get json from destination
NSString *myJSON = [[NSString alloc] initWithContentsOfFile:contentPath encoding:NSUTF8StringEncoding error:NULL];
NSString* MIMEType = @"application/json";
NSError* parseError;
NSData *data = [myJSON dataUsingEncoding:NSUTF8StringEncoding];
id parsedData = [RKMIMETypeSerialization objectFromData:data MIMEType:MIMEType error:&parseError];
if (parsedData == nil && parseError) {
NSLog(@"Cannot parse data: %@", parseError);
}
// Setting up objectmapping for issue
RKObjectMapping *issueMapping = [RKObjectMapping mappingForClass:[Issue class]];
[issueMapping addAttributeMappingsFromDictionary:@{
@"title": @"title",
@"description": @"description",
@"cover_url": @"cover_url",
@"published_at": @"published_at",
@"issue_number": @"issue_number"
}];
//Setting up objectmapping for article
RKObjectMapping *articleMapping …Run Code Online (Sandbox Code Playgroud) ios ×5
iphone ×4
firebase ×3
objective-c ×3
heroku ×2
node.js ×2
ruby ×2
xcode ×2
amazon-ec2 ×1
capistrano ×1
css ×1
database ×1
drawrect ×1
html ×1
ios6 ×1
javascript ×1
macos ×1
nsbutton ×1
proxy ×1
rest ×1
restkit ×1
socks ×1
storyboard ×1