Tag: cocoa触摸

线程与asynchronous调用

我想知道产生一个线程或使用NSURLConnection类进行asynchronous调用之间的最佳。

UIScrollViewdynamic调整UILabel的大小

我有一个不是静态的UILabel。 我想调整我的滚动视图,以便它符合标签。 现在我的想法是: self.scrollView.contentSize = CGSizeMake(320.0, 92+self.contentLabel.frame.size.height); 92代表我的标签从哪里开始的像素。 (也有一个标题) 但它不起作用,它似乎也与Interface Builder连接。 多谢你们。

在加载第一个选项卡之前修改(Storyboard)TabBarController选项卡

所以我的应用程序在运行时决定哪些TabBarItems可用。 问题是,[self.tabBarController viewControllers]在实际的TabBarController类中是空的(在viewDidLoad和viewWillAppear即是)。 它填充后的第一个ViewController(选项卡)加载,但是这太迟了,因为我甚至不知道如果我想加载这个特定的。 我知道这可以通过倾销故事板来解决,也可以依靠它吗? 现在想到的最好的解决scheme是创build一个虚拟的ViewController,加载完成后立即换出…

GPUImage – 如何用GPUImagePicture链接filter?

我想要在GPUImage FilterShowcase中的“哈里斯angular检测”,但与GPUImagePicture而不是GPUImageVideoCamera实现相同的效果。 我不能让filter链工作。 这是我现在的代码: -(UIImage*)addHarrisCornerToImage:(UIImage*)inputImage { GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage]; GPUImageHarrisCornerDetectionFilter *cornerDetectionFilter = [[GPUImageHarrisCornerDetectionFilter alloc] init]; [(GPUImageHarrisCornerDetectionFilter *)_filter setThreshold:0.20]; GPUImageCrosshairGenerator *crosshairGenerator = [[GPUImageCrosshairGenerator alloc] init]; crosshairGenerator.crosshairWidth = 15.0; [crosshairGenerator forceProcessingAtSize:CGSizeMake(480.0, 640.0)]; [(GPUImageHarrisCornerDetectionFilter *)_filter setCornersDetectedBlock:^(GLfloat* cornerArray, NSUInteger cornersDetected, CMTime frameTime) { [crosshairGenerator renderCrosshairsFromArray:cornerArray count:cornersDetected frameTime:frameTime]; }]; GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init]; [blendFilter forceProcessingAtSize:CGSizeMake(480.0, […]

检查UIButton是否已经存在于UITableViewCell上

对于每个UITableViewCell我在tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath创build一个UIButton tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath方法。 我想在创build时检查UIButton是否已经存在,所以不会多次添加,但是我不能。 这是我的代码: – (UITableViewCell *)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { UIImageView *cellBottomLine = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, CELL_HEIGHT, 320.0, 1)]; cellBottomLine.image = [UIImage imageNamed:@"bottomCellImage.png"]; if (cellBottomLine.subviews) { [cell addSubview:cellBottomLine]; } copyButton = [BSFunctions createButtonWithNormalImageNamed:@"copyCellButton.png" highlightedImageName:@"copyCellButtonPressed.png" target:self selector:@selector(copyPressedFromCell:)]; [copyButton setFrame:CGRectMake(250, 10, 62, 32.5)]; copyButton.tag = indexPath.row; […]

为什么不设置这个UISlider的值属性更新其位置?

… ViewController.h: @property (nonatomic, strong) IBOutlet UISlider *slider; … ViewController.m: @synthesize slider; – (void)viewDidLoad { [super viewDidLoad]; … currentValue = 50; self.slider.value = currentValue; // Do any additional setup after loading the view, typically from a nib. } 的.xib: 我的界面中的UISlider连接到slider属性。 行为: 当滑块位于中间位置时,滑块一直位于值100的右侧。 我设置的动作确认currentValue的值是50.如果currentValue是50并且slider.value被设置为50,为什么这个位置不反映这个? PS我试过[slider setNeedsDisplay],并没有影响这种行为。 更新:感谢您的快速解答! 多么愚蠢的事情要做。 我打印出currentValue作为int其他地方,所以我现在设置slider.value这个代码: self.slider.value = (float) currentValue/100;

下载大文件时应用程序崩溃 – NSFileHandle seekToEndOfFile

我有一个循环,获取一堆文件的URL(10个小的txt文件和700KB左右的大图像文件),并运行“getFile”为每个文件创build一个NSUrlConnection。 当应用程序在[file writeData:data]之前到达[file seekToEndOfFile]时,它将崩溃: *** Terminating app due to uncaught exception 'NSFileHandleOperationException', reason: '*** -[NSConcreteFileHandle seekToEndOfFile]: No such process' *** First throw call stack: 奇怪的是,如果我通过代码(即慢慢允许每个连接去回来),然后所有文件下载罚款。 如果我只是让应用程序做它的事情崩溃。 这里是连接的代码: -(void)getFile { NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:fullURL]]; NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; [conn start]; } – (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSString *fileName = […]

为什么我的观点相互重叠?

我只是无法理解意见,不知何故找不到一个明确的解决办法。 我有一个视图“A”,它有一个button去另一个视图“B”。 视图B带我去查看C并查看C带我回到A. 在C视图中,用户点击的任何地方,他都会看到一个图像出现。 代码是在C的.m文件中。 问题是,当我从视图C切换到A时,C的代码仍然在视图A上工作? 如果我点击A,我可以在任何地方看到这个图像,但是A是我的菜单,而不是游戏的一部分。 使图像出现在水龙头上的方法只属于查看C! 我无法理解这些观点; 在开始我使用insertSubview:atIndex:和一切都重叠,所以现在我使用addSubview: insertSubview:atIndex:我有这个问题。 有人可以从几何上解释这是如何工作的吗? 从视图C中看到的button怎么会在视图中看不见? 为什么在加载C并返回给A之后,它实现了对视图A的C代码? 为什么我的观点一直重叠? 我希望每个视图单独工作,不要从视图背后看到任何东西,或者从过去加载的视图实现代码。 请帮我看看我的意见。 非常感谢。

无法确定何时UIImageView帧是平等的

我有两层。 底层由隐藏的UIImageView组成,上层由可见的UIImageView组成。 当底层UIImageView的所有帧都等于上层UIImageView的帧时,你必须在NSLog看到。 问题是由NSTimer调用的布尔方法总是立即返回true,所以我看到NSLog 。 当所有相应的帧都相等时,我只想看到NSLog 。 这是我的代码: – (void)checkTheFrames { BOOL allEquals = [self isEqualFrames]; if (allEquals) { NSLog(@"ALL THE FRAMES ARE EQUAL"); [AllPosCorrectTimer invalidate]; } } -(BOOL)isEqualFrames { for(int i = 0; i < arrayImg.count; i++ ){ UIImageView *ImageView1 = arrayImg[i]; UIImageView *ImageView2 = HiddenFieldView[i]; if (!CGRectEqualToRect(ImageView1.frame, ImageView2.frame)) { return NO; } } […]

检测WatchKit扩展在应用程序中的存在

我有一个应用程序,如果WatchKit扩展程序安装在已配对的Apple Watch上,而不是如果不是,那么在更新和caching时,我的行为会有所不同。 如果watchkit扩展有任何启动的机会(你已经配对了一个手表和应用程序安装),那么我想要做更多的重型caching。 有没有什么办法可以检测Apple WatchKit Extension是否从我的iOS应用程序安装在Apple Watch上? 除了第一次设置标志之外,它是否启动,希望以后不会被删除? 干杯 聂