小编Sko*_*ota的帖子

contentView没有在iOS 6 UITableViewCell原型单元格中缩进

我正在UITableViewCell使用Storyboard中的原型单元配置自定义.但是,所有UILabels(和其他UI元素)似乎都没有添加到单元格中contentView,而是UITableViewCell直接添加到视图中.当单元格进入编辑模式时,这会产生问题,因为内容不会自动移位/缩进(如果它们位于内部,它会执行此操作contentView).

有没有办法contentView在使用Interface Builder/Storyboard/prototype cell布局单元格时添加UI元素?我找到的唯一方法是在代码中创建所有内容并使用[cell.contentView addSubView:labelOne]不太好的内容,因为以图形方式布置单元格要容易得多.

uitableview ios ios6

39
推荐指数
4
解决办法
2万
查看次数

iOS 4.2 - 通过电话后返回应用程序

我可以使用以下内容在我的应用内成功发起电话:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
Run Code Online (Sandbox Code Playgroud)

但是,一旦电话通话终止,是否可以自动返回应用程序?这似乎在iPhone OS 3.0下是不可能的,但我希望现在可以在iOS 4.2下进行多任务处理(我无法找到有关iOS 4.2特定问题的任何信息).

在此先感谢您的帮助!

iphone ios

33
推荐指数
3
解决办法
2万
查看次数

drawRect圆和动画大小/颜色

我在使用标准代码的-drawRect:方法中画了一个圆圈.但是,我想略微脉冲(变大和变小)并用动画改变颜色填充的强度.例如,如果圆圈充满了红色,我想用脉冲圆圈,并使脉冲动作使红色稍微更轻,更暗.没有太多的核心动画经验我对如何做到这一点有点迷茫,所以任何帮助将不胜感激.UIViewCGContextFillEllipseInRect()

core-animation quartz-graphics ios ios5

29
推荐指数
1
解决办法
1万
查看次数

NSDate为该月的第一天

这是一个非常简单的概念,但到目前为止,我一直无法找到一个优雅的(和日历区域独立)解决方案.我需要找到一个任意的月份的第一天NSDate.例如,给定一个任意NSDate(arbitraryDate)将返回另一个NSDate对象(让我们调用它firstDayOfMonthDate),它代表该月的第一天arbitraryDate.时间组件并不重要,因为我只需要在该月的第一天使用NSDate对象(尽管为了整洁,如果时间刚刚归零,它将是有用的).

在此先感谢您的任何帮助.

iphone cocoa-touch nsdate nscalendar

28
推荐指数
2
解决办法
2万
查看次数

UIView通过自动布局约束动画更改

假设我有一个如下所示的项目:

在此输入图像描述

有两个UIViews - 一个叫yellowBox,另一个叫redBox.自动布局约束规定yellowBox从超视图顶部开始有60个点,有350个前导和尾随空格(即视图的左侧和右侧).在redBox具有相同的前端和后端空间的限制.两个0之间有一个垂直空间约束,表示底部yellowBox应始终直接位于顶部redBox.

当用户点击"扩展黄色框"按钮时,我希望yellowBox增加的高度,结果redBox向下移动以继续满足垂直空间约束(yellowBox始终位于顶部redBox).这是动画代码:

- (IBAction)expandYellowBox:(id)sender {

    [UIView animateWithDuration:0.5
                     animations:^{
                         CGRect newFrame = self.yellowBox.frame;
                         newFrame.size.height += 50;
                         self.yellowBox.frame = newFrame;
                     }];

}
Run Code Online (Sandbox Code Playgroud)

但是,我一直无法正常工作.正如您在红色图标中看到的那样,目前的约束存在问题:

在此输入图像描述

这是公平的,因为自动布局无法知道盒子的高度.但是,我不知道如何以这样的方式解决这个问题,它将允许调整框的大小和移动.例如,如果我在yellowBoxthen 上指定一个高度约束,则会阻止它的大小调整.如果我将高度约束设置为大于或等于(以允许yellowBox高度增加),那么我得到一个不同的约束错误:

在此输入图像描述

所有约束都是在故事板中使用Xcode建立的 - 没有一个是用代码编写的.

任何帮助非常感谢.


编辑:事实证明,yellowBox当点击按钮时,它正在增长 - 这只是我无法分辨,因为它出现在后面redBox.我只是在四次点击后才注意到它开始出现在底部redBox.然而,同样的问题仍然存在 - 如何让redBox总是坚持下去yellowBox.

cocoa-touch uiview ios autolayout

27
推荐指数
1
解决办法
3万
查看次数

在iOS 5 ARC中删除NSNotificationCenter观察器

我有一个基于iOS 5 ARC的项目,并且在我应该删除观察者的位置时遇到困难,NSNotificationCenter因为我已经注册了UIViewController.关于SO的类似帖子已经说过这应该在-dealloc方法中完成.尽管ARC项目中不需要此方法,但我已使用以下代码添加它:

- (void)dealloc {

    [[NSNotificationCenter defaultCenter] removeObserver:self];

}
Run Code Online (Sandbox Code Playgroud)

作为测试,我打开UIViewController(在a内UINavigationController),做一些触发通知的事情,然后通过点击Back按钮将其弹出堆栈.然后UIViewController,我重新打开,并做更多事情来触发通知,但请注意每个回调被调用两次 - 表明以前的通知尚未注销.重复此过程只会导致每次回调被调用多次,因此它们似乎永远不会取消注册.

任何帮助,将不胜感激!

cocoa-touch objective-c nsnotifications nsnotificationcenter ios

21
推荐指数
2
解决办法
2万
查看次数

何时取消订阅UIView中的NSNotification

我在UIView中使用以下NSNotifications,以便在出现UIKeyboard时通知视图并在屏幕上调整其位置(框架):

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

上面的两个通知正在-initUIView 的方法中订阅.一旦视图在屏幕外消失,取消订阅这些通知的最佳位置在哪里?目前,只要UIKeyboard出现在另一个视图中,应用程序就会崩溃,大概是因为仍然会向当时发布的UIView发送通知.

此外,除了-init方法之外,还有更好的地方订阅通知吗?

谢谢你的帮助.

iphone cocoa-touch objective-c nsnotifications ios

16
推荐指数
1
解决办法
5858
查看次数

UILabel Word Wrap/Character Wrap

我有一个UILabel lineBreakMode设置为UILineBreakModeWordWrap.这工作正常,除非我有一块没有空格的长文本.在这种情况下,它不会包裹文本的长平板,而是在它到达UILabel框架的右端时切断它.我怎么能告诉的UILabel,它应该包裹在这种情况下一个字符边界上(实质上相当于UILineBreakModeCharacterWrap设置,但仅限于spaceless文本的那些漫长的砖).

提前致谢!

cocoa-touch objective-c uilabel ios

10
推荐指数
2
解决办法
2万
查看次数

Swift 2.0中的countForFetchRequest

我试图countForFetchRequest在Swift 2.0中的托管对象上下文中使用该方法.

我注意到错误处理executeFetchRequest已更改为新do-try-catch语法:

func executeFetchRequest(_ request: NSFetchRequest) throws -> [AnyObject]
Run Code Online (Sandbox Code Playgroud)

但该countForFetchRequest方法仍然使用遗留错误指针:

func countForFetchRequest(_ request: NSFetchRequest,
                    error error: NSErrorPointer) -> Int
Run Code Online (Sandbox Code Playgroud)

...我在使用Swift 2.0时如何使用它时遇到了一些麻烦.

如果我做与Swift 2.0之前相同的事情:

let error: NSError? = nil
let count = managedObjectContext.countForFetchRequest(fetchRequest, error: &error)
Run Code Online (Sandbox Code Playgroud)

我收到错误说删除&,但如果我删除,我得到另一个错误,说NSError不能转换为NSErrorPointer.

任何帮助将不胜感激如何使这项工作.

core-data nsfetchrequest swift swift2

9
推荐指数
1
解决办法
5687
查看次数

重新排序单元格后重新加载自定义UITableViewCell

我有 UITableView使用自定义UITableViewCell的.单元格可以具有三种类型的背景图像之一(在每个单元格的.backgroundView.image属性中设置):顶部,中间或底部.顶部和底部图像用于第一个和最后一个单元格,并且具有圆角(很像分组UITableView的单元格).其中的所有其他"中间"单元UITableView具有矩形中间背景图像.

我的问题是,在UITableView" 编辑"模式下重新排序单元格时,单元格不会根据新位置刷新不同的背景图像.例如,如果我将第一个单元格移动到表格的中间,它仍然保留其原始的"顶部"背景图像(带有圆角),并且出现在表格视图顶部的新单元格仍然具有其原始"中间"背景图片,这看起来有点奇怪.

我可以通过reloadData在表视图上执行此操作来解决这个问题,但这样做的问题是不能给出更改的优美动画.我注意到,当UITableView移动/拖动单元格时重新排序标准时,相关单元格上的背景图像会发生变化(甚至在移动的单元格被放入新位置之前),这看起来非常好.我想实现同样的目标.

为此,我实现了tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath每次在表视图中拖动行时调用的内容.在此我尝试了各种设置方法,backgroundView.image包括直接设置图像,然后明确告诉它使用重绘单元格和/或图像setNeedsLayout,setNeedsDisplay但似乎没有任何东西让细胞重绘.我已经NSLog'ged这些更改的结果,它们似乎正在提交到单元格,因为正确的值出现在NSLog,但单元格似乎没有在屏幕上更新.

如果有人能指出我做错了什么,或建议一个更好的方法来实现工作结果,我将非常感激.谢谢!

编辑:以下代码从赏金中提取并格式化,以便更容易消化:

UIImage *rowBackground;
UIImage *selectionBackground;
NSInteger sectionRows = [_tableView numberOfRowsInSection:[indexPath section]];
NSInteger row = [indexPath row];
if (row == 0 && row == sectionRows - 1)
{
    rowBackground = [UIImage imageNamed:@"field_title_bkg.png"];
    selectionBackground = [UIImage imageNamed:@"field_title_bkg.png"];
}
else if (row == 0)
{
    rowBackground = [UIImage …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch uitableview uikit

8
推荐指数
2
解决办法
3826
查看次数