我们想在我们的iPhone应用程序中使用UITabBar,但有一个例外:我们有一个"同步"按钮,我想在同步操作发生时旋转.
不幸的是,这意味着必须创建一个自定义标签栏,但这既不在这里也不在那里:我使用Core Animation实现的动画看起来很棒.问题是,在制作动画时,它会对屏幕上使用动画的其他所有内容产生不利影响:UITableView滚动,MKMapView平移和引脚丢弃等.我的测试设备是iPhone 4.
问题似乎是我如何实现标签栏 - 我想要实现与UITabBar非常相似的东西,你只需要为图标提供PNG,它使用alpha通道通过屏蔽背景来创建正常和突出显示的状态图片.我用CALayer的mask
财产完成了这个:
// Inside a UIView subclass' init method...
// Create the mask layer by settings its contents as our PNG icon.
CALayer *maskLayer = [CALayer layer];
maskLayer.frame = CGRectMake(0, 0, 31, 31);
maskLayer.contentsGravity = kCAGravityCenter;
maskLayer.contentsScale = [[UIScreen mainScreen] scale];
maskLayer.rasterizationScale = [[UIScreen mainScreen] scale];
maskLayer.contents = (id)symbolImage.CGImage;
maskLayer.shouldRasterize = YES;
maskLayer.opaque = YES;
fgLayer = [[CALayer layer] retain];
fgLayer.frame = self.layer.frame;
fgLayer.backgroundColor = [UIColor colorWithImageNamed:@"tabbar-normal-bg.png"].CGColor;
fgLayer.mask = maskLayer; // Apply the …
Run Code Online (Sandbox Code Playgroud) SpatialKey会生成一些非常好看的热图,我们正在研究为内部项目执行此操作所涉及的内容,以便可视化大量的点.我正在寻找关于从何处入手的一些想法的反馈(这只是一个非常有趣的问题).
SpatialKey热图http://img697.imageshack.us/img697/7964/resolutiondays508x17550.jpg
我们知道他们正在使用Flash,从我们可以看出,热图是交互式的,而不是从平铺服务器渲染.我们对如何实现这一点的第一个猜测是服务器为他们的Flash客户端提供一个网格 - 每个单元格都有一个由服务器计算的计数.然后,Flash客户端根据网格中的单元格值进行一些插值,以生成您在上面看到的漂亮输出.
在这个阶段,我只对如何有效地在服务器端生成网格感兴趣(如果我们对它们的实现的假设是正确的).它似乎涉及:
以理智的网格分辨率在多个缩放级别执行此操作,看起来您需要自定义空间索引才能提高效率.
任何接受解释替代路线的人?如果它很重要,我们习惯于将我们的数据存储在PostgreSQL中,并使用PostGIS进行空间索引,但我愿意尝试任何东西.
我正在构建一个涉及创建几个独特的UI"小部件"的应用程序,我很难找到一个很好的做法,用jQuery封装这些UI组件背后的逻辑.这些主要是一次性组件,不会在应用程序的多个位置重复使用.
我一直在尝试使用lowpro插件,虽然它确实允许我想要的更多或更少,但我觉得我正在使用它来反对"jQuery方式".
为了提供一些上下文,这里是我使用lowpro编写的缩写的缩写.这是一个可排序的列表,其他元素可以成为药物.当它初始化为空时,它会显示一个占位符.
FieldList = $.klass({
initialize: function() {
this.placeholder = $('#get-started-placeholder');
if (this.items().length == 0) {
this.deactivateList();
} else {
this.activateList();
}
},
items: function() {
return this.element.children('li:visible');
},
deactivateList: function() {
this.element.hide();
this.element.sortable('destroy');
this.placeholder.show();
var instance = this;
this.placeholder.droppable({
hoverClass: 'hovered',
drop: function(e, ui) { instance.receiveFirstField(ui.helper); }
});
},
activateList: function() {
this.placeholder.hide();
this.placeholder.droppable('destroy');
this.element.show();
var instance = this;
this.element.sortable({
placeholder: 'placeholder',
forcePlaceholderSize: false,
tolerance: 'pointer',
handle: 'h4',
opacity: 0.9,
zIndex: 90,
stop: function(e, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个混淆/审查/编辑文本的PLPGSQL函数.
-- Obfuscate a body of text by replacing lowercase letters and numbers with # symbols.
CREATE OR REPLACE FUNCTION obfuscate(str text) RETURNS text AS $$
BEGIN
str := replace(str, '\r', E'\r');
str := replace(str, '\n', E'\n');
str := translate(str, 'abcdefghijklmnopqrstuvwxyz0123456789', rpad('#',36,'#'));
str := replace(str, E'\r', '\r');
str := replace(str, E'\n', '\n');
RETURN str;
END
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
这有效,但请注意舞蹈将转义的换行符和回车转换为各自的字节,然后再返回.这是因为我的数据集包含已被转义的字符串(已被序列化为JSON/YAML的数据),我不想破坏这些值.
还有另一种更方便的方法来取消字符串吗?处理其他转义值也很棒,比如unicode转义序列.
希望我没有误解"鸭子打字"的含义,但从我所读到的,它意味着我应该根据对象如何响应方法而不是它的类型/类来编写代码.
这是代码:
def convert_hash(hash)
if hash.keys.all? { |k| k.is_a?(Integer) }
return hash
elsif hash.keys.all? { |k| k.is_a?(Property) }
new_hash = {}
hash.each_pair {|k,v| new_hash[k.id] = v}
return new_hash
else
raise "Custom attribute keys should be ID's or Property objects"
end
end
Run Code Online (Sandbox Code Playgroud)
我想要的是确保我最终得到一个散列,其中键是一个表示ActiveRecord对象的ID的整数.我并不特别喜欢两次迭代哈希键all?
以确定是否需要获取ID.
当然,我也会接受任何其他改进此代码的建议:)
这是一个简单的Ruby脚本:
puts `ls -laG`
Run Code Online (Sandbox Code Playgroud)
在OS X的ls中,-G用于颜色.
在bash下运行时,我得到颜色输出.当从Ruby脚本运行上述内容时,我在结果输出中看不到颜色或ANSI转义序列.
从我读过的,我的猜测是因为脚本没有像tty一样运行.有没有办法运行命令,好像它是在真正的tty会话下运行 - 或类似的东西?
我是Objective-C的新手,也是Apple平台上的开发人员,但希望我能以一种可以理解的方式构建这个问题,无论如何:)
我想解析我的iPhone应用程序的XML提要,我决定不将所有委托方法从NSXMLParser的实例推送到我的视图控制器中,我将其包装在FeedParser类中.在阅读了一些文档和示例代码之后,这就是我想出的:
@protocol FeedParserDelegate <NSObject>
- (void)parserDidLoadEpisodes:(NSArray *)episodes;
@end
@interface FeedParser : NSObject {
id <FeedParserDelegate> delegate;
}
@property (nonatomic, assign) id <FeedParserDelegate> delegate;
- (id)initWithURL:(NSURL *)url delegate:(id<FeedParserDelegate>)theDelegate;
@end
Run Code Online (Sandbox Code Playgroud)
简单.我的FeedParser对象的代表只需要实现parserDidLoadEpisodes
.
但是,当我开始实际FeedParser
使用我的类时NSXMLParser
,我意识到我没有必须指定FeedParser
实现协议NSXMLParser
- 我可以实现我想要做的事情的委托方法.我想我已经注意到了跟随委托模式的其他类,但不是全部.
那么为什么我也不愿意为我的FeedParser
课程指定一个正式的协议呢?它会削减一些可能不必要的代码.我想问题是:为什么我要创建一个正式的协议而不只是做一些事情,只需检查是否在委托上实现该方法 respondsToSelector
?是否只有这样,如果没有实现所需的委托方法,编译器将发出很好的警告?
假设我要批量插入/更新/删除大量行(最少 100k,最多 20M),并且必须是原子的。
由于该事务所做的更改尚未提交,因此暂停大约 10-100k 操作以ANALYZE
在同一事务中运行实际上是否会通知查询规划器任何信息?
从逻辑上讲,想象一个客户正在做这样的事情:
BEGIN;
(for i, record in records)
INSERT ...
DELETE ...
UPDATE ...
(if i % 10000 == 0)
ANALYZE;
(end)
(end loop)
COMMIT;
Run Code Online (Sandbox Code Playgroud)
对正在运行的事务的查询计划程序有ANALYZE
什么好处,或者它只会收集已提交行的统计信息吗?
iphone ×2
objective-c ×2
postgresql ×2
ruby ×2
sql ×2
calayer ×1
database ×1
duck-typing ×1
geospatial ×1
heatmap ×1
ios ×1
jquery ×1
maps ×1
mvcc ×1
plpgsql ×1
postgis ×1
refactoring ×1
scripting ×1
spatial ×1
unix ×1