如何自定义MKPolyLineView来绘制不同的样式线

我想自定义在MKMapView上绘制的线条以显示路线,以便线条具有边框颜色和填充颜色。 类似于它有一个黑色的边界,并充满了另一种颜色: 我目前只是从mapView:viewForOverlay:返回MKPolyLineView对象mapView:viewForOverlay:它适用于普通线条。 该文档说MKPolyLineView是不是被子类,所以我应该inheritanceMKOverlayView并实现我自己的drawMapRect? 或者,我应该inheritanceMKOverlayPathView? 或者创build一个替代MKPolylineView? 编辑 – 我问的是:在哪里放置自己的Quartz绘图代码,以绘制自己的注释/覆盖? 目前我已经创build了一个MKOverlayView的子类,并实现了我自己的drawMapRect:zoomScale:inContext:这样绘制叠加图很容易,但这是最好的解决scheme吗?

如何在Swift中注册NSUndoManager?

如何在Swift中使用NSUndoManager ? 这是我试图复制的一个Objective-C示例: [[undoManager prepareWithInvocationTarget:self] myArgumentlessMethod]; 但是,Swift似乎没有NSInvocation ,这(看起来)意味着我不能在undoManager上调用它没有实现的方法。 我已经在Swift中尝试了基于对象的版本,但似乎让我的游乐场崩溃了: undoManager.registerUndoWithTarget(self, selector: Selector("myMethod"), object: nil) 但是,它似乎崩溃,即使我的对象接受AnyObject?types的参数AnyObject? 在Swift中做这个最好的方法是什么? 有没有办法避免发送不必要的对象与基于对象的注册?

AVCaptureSessionaudio不适用于长video

我正在使用AVCaptureSession录制audiovideo。 一切似乎都适合短video,但由于某种原因,如果我录制的video长度大于12秒,则audio不起作用。

在两个UIButton图像之间淡入淡出

我想在两个UIButton图像之间淡入淡出,以便在UITableView中设置collections夹。 目前,转换完成无效 – 它只是点击/触摸直接更改图像: trans_img = [UIImage imageNamed:@"fav_on.png"]; NSArray *subviews = [owningCell subviews]; UIButton *favbutton = [subviews objectAtIndex:2]; favbutton.imageView.animationImages = [NSArray arrayWithObjects:trans_img, nil]; [favbutton.imageView startAnimating]; 我发现的一切都是UIViews 🙁 如果图像fav_off平滑地转换为fav_on,反之亦然,就像淡入淡出一样。

核心数据谓词:谓词未实现的SQL生成

基本上我有3个实体在我的数据模型:品牌,模型和修剪。 一个品牌与模型有一个一对多的关系,叫做“​​模型”。 (一个品牌有多个型号,但一个型号只有一个品牌) 一个模型与Trim被称为“修剪”有多对多的关系。 (一个模型可以有多个修剪,一个修剪可以有多个模型) 有一个修剪对象的数组,我想要得到所有的品牌有一个“包含”至less一个修剪包含在这个数组内的模型。 所以这里是我对谓词的判断: NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Brand"]; [NSPredicate predicateWithFormat:@"ANY models.trims IN %@", arrayOfTrims]; 这是我得到的错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (ANY models.trims IN {<Trim: 0x8e60340> (entity: Trim; id: 0x8e62f10 <x-coredata://BCD28560-AED5-4409-9A35-1925001773E6/Trim/p8> 我对Core Data有点新鲜,我不知道我做错了什么。 希望有人能帮忙, 非常感谢。

使用自动布局将子视图的宽度匹配到超级视图

目标: 有一个UIWebView是相同的宽度,因为它的超级查看,这是一个UIScrollView ,使用自动布局约束。 码 NSLayoutConstraint *makeWidthTheSameAsScrollView =[NSLayoutConstraint constraintWithItem:self.questionWebView attribute:NSLayoutAttributeWidth relatedBy:0 toItem:self.masterScrollView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0]; [self.view addConstraint:makeWidthTheSameAsScrollView]; NSLog(@"The width of questionWebView *AFTER* adding the constrain is: %f", self.questionWebView.frame.size.width); NSLog(@"The width of scrollView *AFTER* adding the constrain is: %f", self.masterScrollView.frame.size.width); 当前结果 当我loggingself.questionWebView ( UIWebView )的宽度时,它的宽度在应用自动布局约束时不会改变。 问题 这是正确的方法吗? 我究竟做错了什么? PS我知道这是违反苹果的build议将UIWebView放在UIScrollView ,但是我已经closures了使用属性self.questionWebView.userInteractionEnabled = NO;滚动UIWebView的能力self.questionWebView.userInteractionEnabled = NO; 。 而目前使用UIWebView是我最好的策略来显示HTML表格。

iOS:如何在启用ARC的情况下从内存中删除对象?

我正在使用iOS 5 SDK开发iOS应用程序,启用了自动引用计数。 但是,我有一个特定的对象,正在大量创build,必须在一秒之后才能释放,否则设备将变得非常慢。 看起来他们没有被释放,因为设备非常慢。 有没有办法手动释放一个对象时启用ARC? 编辑:我的代码,这被称为每秒200次,以产生闪闪发光。 他们在0.8秒后淡出,所以他们在那之后是无用的。 int xanimationdiff = arc4random() % 30; int yanimationdiff = arc4random() % 30; if (arc4random()%2 == 0) { xanimationdiff = xanimationdiff * -1; } if (arc4random()%2 == 0) { yanimationdiff = yanimationdiff * -1; } Sparkle *newSparkle = [[Sparkle alloc] initWithFrame:CGRectMake(20 + arc4random() % 280, 20, 10, 10)]; […]

NSCache不会驱逐数据

NSCache是一个很less使用的工具,实际上看起来非常有用。 我创build了一个简单的实验,看看它是如何工作的,看起来它不会在低内存情况下自动驱逐数据(或者我做错了什么!) – (void)viewDidLoad { _testCache = [[NSCache alloc] init]; // Allocate 600 MB of zeros and save to NSCache NSMutableData* largeData = [[NSMutableData alloc] init]; [largeData setLength:1024 * 1024 * 600]; [_testCache setObject:largeData forKey:@"original_Data"]; } – (IBAction)buttonWasTapped:(id)sender { // Allocate & save to cache 300 MB each time the button is pressed NSMutableData* largeData […]

UIMenuController方法setTargetRect:inView:不能在UITableView中工作

我在我的tableview像这样显示自定义的UIMenuController 但问题是,它显示在中心,我想显示在橙色的label顶部。 为了显示在label我做了这个[menu setTargetRect:CGRectMake(10, 10, 0, 0) inView:self.lbl]; 下面是整个代码。 但是,如果我显示没有UITableView的UIMenuController setTargetRect工作正常。 为什么setTargetRect不能使用UITableView ? setTargetRect Doc说: (a)这个目标矩形(targetRect)通常是select的边界矩形。 UIMenuController将编辑菜单放在这个矩形的上方; 如果菜单没有足够的空间,则将其放置在矩形的下方。 菜单的指针被放置在目标矩形顶部或底部的中心。 (b)请注意,如果将目标矩形的宽度或高度设置为零,则UIMenuController会将目标区域视为定位的线条或点(例如插入符或单点)。 (c)一旦设置,目标矩形不会跟踪视图; 如果视图移动(例如在滚动视图中发生),则必须相应地更新目标矩形。 我错过了什么? MyViewController -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 5; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TheCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cid" forIndexPath:indexPath]; cell.lbl.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row]; return cell; } – (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath […]

将核心数据快速地检索到tableview单元格中

我试图简单地存储和检索CoreData(我以前用swift成功完成的)。 我得到一个零数据,但现在(不知道是什么改变)我没有得到一个错误,只是没有显示在tableview中。 我不确定在存储或检索对象时是否存在问题。 我跟着我是如何在另一个应用程序中尽可能地做到这一点的,但似乎有一些根本性的东西,我没有得到。 这是我的。 我的模特: import Foundation import CoreData @objc(DataModel) class DataModel: NSManagedObject { @NSManaged var itemName: String @NSManaged var quantity: NSNumber @NSManaged var price: NSNumber } 在我想保存数据的文本字段的静态单元格tableviewcontroller: import UIKit import CoreData class NewItemTableViewController: UITableViewController { @IBOutlet weak var itemNameTextField: UITextField! @IBOutlet weak var itemPriceTextField: UITextField! @IBOutlet weak var itemQuantityTextField: UITextField! override func viewDidLoad() […]