Tag: Objective C

CAShapeLayer裁剪图像

我正在尝试使用此代码使用CAShapeLayer裁剪图像 CALayer* contentLayer = [CALayer layer]; CAShapeLayer* mask = [CAShapeLayer layer]; CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, 10, 10); CGPathAddLineToPoint(path, NULL, 10, 80); CGPathAddLineToPoint(path, NULL, 80, 80); CGPathAddLineToPoint(path, NULL, 80, 10); mask.path = path; [contentLayer setContents:(id)[[UIImage imageNamed:@”image.png”] CGImage]]; [contentLayer setMask:mask]; [[self layer]addSublayer:contentLayer]; 执行此操作后,我只能看到空视图;

堆叠的presentViewController之后statusBarFrame = 0

我的主视图控制器调用presentViewController来显示配置屏幕。 该配置屏幕上的按钮调用presentViewController以允许用户选择照片。 解除第二个视图控制器后,第一个视图控制器将重新绘制在iOS 6上的状态栏下(在iOS 5上正常工作)。 在第一个配置控制器的viewWillAppear方法(模态呈现的那个)中,我尝试了几件事: 检查statusBarFrame(它在第一个视图中返回20 ;在以下视图中返回20 ) 检查主屏幕的帧(它在第一个视图上返回{{0, 20}, {320, 460}} {0, 0}在以下视图上返回{{0, 20}, {320, 460}} 手动将框架的y坐标设置为20(即使自动调整遮罩设置为无,iOS也会将其更改回0) 此时我想不出任何事情,除了手动将所有子视图向下移动20像素,这是超级janky。 有什么想法可能导致这个? iOS 6中可能导致此问题的变化是什么?

如何在ViewController类范围之外执行?

如何在ViewController类范围之外执行[self.view addSubview:lbl]? 要么: 如何在ViewController类之外的主视图中将标签或其他视图添加到其他类中? 谢谢 – (void)viewDidLoad { [super viewDidLoad]; UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; [lbl setText:@”hi there”]; [self.view addSubview:lbl];// <– this works, but … // what is "self" referring to? // and how can I declare and call from another class? … UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, […]

即使用户向下滑动,也能保持UISearchBar可见

我有一个带有UISearchBar的UItableView我想知道是否有办法保持UIsearchBar可见,即使用户向下滑动以检查tableView的下半部分。

IBOutlet收集UIButtons – 更改按钮的选定状态

我在视图中遇到多个UIButton的问题。 我希望单独选择按钮,一次选择多个(例如:10个按钮,选择按钮1,4,5,9)。 在我的标题中,我有一个IBOutletCollection的属性: @property (retain, nonatomic) IBOutletCollection(UIButton) NSMutableArray *buttonToStaySelected; 在我的实现中,我有一个IBAction: -(IBAction)selectedButton:(id)sender{ for (UIButton *b in self.buttonToStaySelected) { if (b.isSelected == 0){ [b setSelected:YES]; } else [b setSelected:NO]; } } 我遇到的问题是,当我选择与集合相关的任何按钮时,它们都会更改为选中状态。 我知道最有可能(几乎可以肯定)的问题在于循环,但是我试图规定的每个条件都会破坏代码,并且没有任何按钮能够“改变”状态。 更新 要让它们可选,更改状态并检查多个,我使用它作为我的最终代码: -(IBAction)selectedButton:(id)sender { for (UIButton *b in self.buttonToStaySelected) { if (sender == b) { [b setSelected:!b.isSelected]; } } } 感谢您的帮助!

NSSortDescriptor具有名字和姓氏,还是名字或姓氏?

我正在对联系信息数组进行排序,当我输入第一个名字并且最后一个用于特定联系时,它正常工作,但是当它缺少任何一个时它工作正常, 对于Ex:如果我输入名字John和姓氏mickey,那么它会给出正确的排序,但是如果我只输入mickey,那么它最后会出现在UITableview的#section中,所以我需要在这种情况下做这种情况。 我的代码如下, NSSortDescriptor *sortDescriptorFirstName = [[[NSSortDescriptor alloc] initWithKey:@”firstName” ascending:YES selector:@selector(localizedStandardCompare:)] autorelease]; NSSortDescriptor *sortDescriptorLastName = [[[NSSortDescriptor alloc] initWithKey:@”lastName” ascending:YES selector:@selector(localizedStandardCompare:)] autorelease]; NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptorFirstName,sortDescriptorLastName,nil]; if(favFlag){ favContacts = [[contactsData sortedArrayUsingDescriptors:sortDescriptors] mutableCopy]; [self setListContent:favContacts]; } else { contacts = [[contactsData sortedArrayUsingDescriptors:sortDescriptors] mutableCopy]; [self setListContent:contacts]; } [contactTableView reloadData];

进入编辑模式时保持UITableViewCell背景颜色

我为所有UITableViewCells设置了背景颜色。 但是,当我单击我的UIBarButtonItem“编辑”时,删除和可拖动图标会扭曲背景颜色,使背后的白色背景。 有没有办法解决? 我可以在必要时显示代码,但这似乎是一个非常简单的问题。

UIScrollView:更准确/精确的contentOffset值?

我想知道是否有任何方法可以获得更准确的contentOffset版本,或估计/计算contentOffset或(最好) UIScrollView的contentOffset的一阶导数。 当我的UIScrollView的contentOffset的变化率非常小时,我试图执行一个动作,但0.5f不够精确。 任何帮助是极大的赞赏。

Objective&C中“&error”的含义是什么?

可能重复: 为什么这里使用“错误:错误”(objective-c) AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error]; &符号在上面的代码中意味着什么?

didChangeObject:未调用NSFetchedResultsController

我几乎尝试了一切,但无法弄清楚出了什么问题。 我有一个NSFetchedResultsController并从核心数据中获取一些post。 然后我有一个方法,我将新post插入到相同的上下文中并保存上下文。 通常,应该立即调用didChangeObject:方法,但事实并非如此。 我有一个类似的视图控制器,我在不同的表(= nsmanaged对象)上基本相同,并成功调用didChangeObject:方法。 到目前为止我尝试了什么: 为此视图控制器创建了另一个上下文 删除了NSFetchedResultsController的缓存 以下方法从核心数据db中取出数据并将其“存储”到NSFetchedResultsController(变量: controller )中。 //reloading newsgroups from coredata – (void)reloadNewsgroupsFromCoreData { //creating fetch request NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@”Post”]; //sorting by transient date (hour and secons cutted off) NSSortDescriptor *sortByDate = [[NSSortDescriptor alloc] initWithKey:@”dateCreatedTransient” ascending:NO]; NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortByDate, nil]; [fetchRequest setSortDescriptors:sortDescriptors]; //where clause […]