对于iPhone,是否可以配置UITableView使其允许多选?
我已经尝试为每个UITableViewCell覆盖-setSelected:animated:
,但是尝试捏合所需的行为非常棘手,因为很难将真正的未选择项与UITableView认为由于选择了另一个单元格而未选择的项分开!
希望有人能帮忙!
谢谢,
缺口。
我有一个需要具有类似搜索功能的应用程序,例如Apple“地图”应用程序(包括在iPhone,iPod Touch和iPad中)。
所涉及的功能应该不是一件容易的事,但是对于如何在搜索栏中输入街道地址,然后获取该地址的坐标或可以帮助我实际移动地图和 在那个地方的中心。
我的意思是,我必须查询什么,Apple是否提供“地址搜索API方法”? 还是我需要直接使用google maps API?
我很想听听应该怎么做。
由于某些原因,当我尝试使用CALayer时出现链接器错误:
"_OBJC_CLASS_$_CALayer", referenced from:
我已导入以下标头:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
码:
arrowImage = [[CALayer alloc] init];
当您未在目标C中列出任何属性时,该属性的默认属性是什么?
例如,如果我写了这个:
@property float value;
默认值是什么,例如只读,是否保留...等?
可能重复:
目标C中的MD5算法
我需要在可可中使用MD5技术对字符串进行哈希处理。 使用的所有框架都必须能够在iphone上进行访问。 请提供代码(如果可能)。
我正在使用UICollectionView
显示几个专辑的项目。 项目显示正常,但现在我想在第一部分上方显示标题。
为此,我在初始化方法中添加了UICollectionView
。 像这样:
[self.collectionView registerNib:[UINib nibWithNibName:@"AlbumHeader" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:kAlbumHeaderIdentifier];
(UICollectionView
笔尖包含类AlbumHeader
的视图,该类是UICollectionView
的子类。)
之后,我实现了UICollectionView
方法:
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
return [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:kAlbumHeaderIdentifier forIndexPath:indexPath];
}
我想现在应该尝试加载标题视图。 但这不是,不会调用补充视图的方法。
我想念什么? 卡了几个小时,已经多次阅读了UICollectionView
上的文档,但似乎无济于事。 有什么想法吗?
我在NSMutableArray
中有一个字符串列表,我想在按表格视图显示它们之前按字母顺序对它们进行排序。
我怎样才能做到这一点?
可能重复:
如何向用户显示我的应用程序的当前项目版本?
有没有办法检查我的应用程序的版本号? 该应用程序进入App Store后是否在某处提供?
我正在使用NSTimer在基于OpenGL的iPhone应用程序中进行一些渲染。 我有一个弹出对话框,要求用户输入。 当用户提供输入时,我想“暂停”,例如:
[myNSTimer pause];
我使用这种语法是因为我一直在做以下事情:
[myNSTimer invalidate];
当我希望它停止时。
如何以编程方式暂停NSTimer?
我继承了UIImageView的子类,并尝试覆盖drawRect,以便可以使用Quartz 2D在图像顶部绘制。 我知道这是一个愚蠢的新手问题,但我没有发现我做错了什么。 这是界面:
#import <UIKit/UIKit.h>
@interface UIImageViewCustom : UIImageView {
}
- (void)drawRect:(CGRect)rect;
@end
并执行:
#import "UIImageViewCustom.h"
@implementation UIImageViewCustom
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
}
return self;
}
- (void)drawRect:(CGRect)rect {
// do stuff
}
- (void)dealloc {
[super dealloc];
}
@end
我在drawRect
上设置了一个断点,但它从未命中,导致我认为它根本不会被调用。 视图第一次加载时不应该调用它吗? 我是否错误地重写了它?
我有一个多行UILabel,我想根据文本长度调整其字体大小。 整个文本应适合标签框架而不会被截断。
不幸的是,根据文档,adjustsFontSizeToFitWidth
属性“仅在numberOfLines
属性设置为1时有效”。
我试图使用确定确定调整后的字体大小
-[NSString (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode]
然后减小字体大小,直到适合为止。 不幸的是,此方法在内部将文本截断以适合指定的大小,并返回结果截断的字符串的大小。
我有一个NSMutableDictionary
,它带有整数值,我想获得一个键数组,按其各自的值升序排列。 例如,使用此字典:
mutableDict = {
"A" = 2,
"B" = 4,
"C" = 3,
"D" = 1,
}
我想以["D", "A", "C", "B"]
数组结束。当然,我的真实字典比四个字典大得多。
我希望能够在用户点击键盘外的任何位置时关闭iPhone键盘。 我该怎么做呢? 我知道我需要解雇响应者,但是当用户在键盘空间之外点击时,需要知道如何实现它。
我不太了解方法convertPoint:toView:
。
在苹果的文档中写道
convertPoint:toView:
将点从接收者的坐标系转换为 指定的视图。
convertPoint:toView:
但是,将点从一个转换为另一个到底意味着什么?
是否暗示两个边界中的点具有不同的单位? 还是只是不同的值?
如果是后者,当我们仅将a的convertPoint:toView:
赋给b的值时,为什么会有这样的方法呢?
CGPoint a = [a contentOffset];
[b setContentOffset:a];
convertPoint:toView:
与简单分配contentOffset
有何不同? 还是我误解了整个概念? 转换点实际上有什么作用? 什么时候应该使用这种方法?
核心动画中的图层支持视图和图层宿主视图之间有什么区别?
设置每种类型的步骤是什么,什么时候使用哪种类型合适?
Apple文档建议使用自动布局来设置Today Extensions的高度。
如果窗口小部件要显示其他内容,则可以依靠“自动布局”约束来适当调整窗口小部件的高度。 如果您不使用自动版式,则可以使用UIViewController属性preferredContentSize指定小部件的新高度。
但是,我看到的每个示例和教程最终都使用preferredContentSize
。
我通过自动布局来设置高度的所有尝试都导致警告了约束破损。
我从一个新的xcode模板和一个今天的扩展模板开始。 我添加到preferredContentSize
的唯一内容是:
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
return UIEdgeInsetsMake(0, 0, 0, 0);
}
注意:如果仅使用默认边距,仍然会出现此问题。
我限制了标签的高度,将标签在容器中居中,并将容器的高度限制为与标签的高度相同:
这将导致标签以指定的高度填充容器,而没有约束冲突。 相反,我遇到了约束冲突:
2014-09-28 10:27:39.254 TodayExtension[61090:2672196] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7f8b8b62c670 V:[UILabel:0x7f8b8b62d9b0'Hello World'(124)]>",
"<NSLayoutConstraint:0x7f8b8b583020 UIView:0x7f8b8b62d6e0.height == UILabel:0x7f8b8b62d9b0'Hello World'.height>",
"<NSLayoutConstraint:0x7f8b8b5888a0 'UIView-Encapsulated-Layout-Height' V:[UIView:0x7f8b8b62d6e0(667)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f8b8b62c670 V:[UILabel:0x7f8b8b62d9b0'Hello World'(124)]>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
它打破了约束的方式,实际上最终看起来像我想要的那样:
但是,在其他项目中,它决定打破其他约束,而且看起来不正确。 另外,请注意:如果我尝试更改高度约束的优先级,则会使Xcode崩溃。 这很有趣。
我曾希望,因为约束高度没有用,也许如果我不将容器高度约束到子视图,那么它也许会找出容纳子视图并正确设置自身所需的高度。
我将子视图居中并限制其高度:
这只是导致了一个扩展,该扩展用尽了通知中心的全部高度,并且我正确设置的视图垂直居中:
如果我不居中,而是将垂直空间固定在顶部布局指南上,除了将子视图固定在顶部(但容器仍然很大)之外,我会得到相同的结果。
我知道我可以只使用preferredContentSize
,但是为什么苹果会说可以使用“自动布局”约束进行设置? 我究竟做错了什么?
我给出的例子显然是人为的。 我正在设置视图的高度,那么为什么不只设置容器的高度呢? 在实际项目中,部分原因是仅使用自动布局根据宽度设置小部件的高度。
在iOS 6中,不推荐使用CLLocationManager的purpose
属性来描述使用位置服务的原因(@property(copy, nonatomic) NSString *purpose
)。
苹果会提出什么替代方案(如果有)?
我对在块内使用self感到困惑,我浏览了Apple的一些文档,但仍然找不到正确的答案。
有人总是说在块内使用弱自我,但有人说在复制的块中使用弱自我,而不必总是使用。
范例1:
self.handler = ^(id response, NSError *error)
{
self.newresponse = response; //use weak self here
};
范例2:
用弱小的自我;
__weak myViewController *weakSelf = self;
[UIView animateWithDuration:interval delay:0.0 options:curve animations:^
{
[weakSelf.view.superview setTransform:CGAffineTransformMakeTranslation(0, -106)];
//in above is it use of weak is neassary
}
completion:^(BOOL finished)
{
}];
没有脆弱的自我
__weak myViewController *weakSelf = self;
[UIView animateWithDuration:interval delay:0.0 options:curve animations:^
{
[myViewController.view.superview setTransform:CGAffineTransformMakeTranslation(0, -106)];
}
completion:^(BOOL finished)
{
}];
在以上示例中,哪个是正确的?**我正在使用ARC
我正在使用Objective-C学习iOS开发,并且发现了很多代码示例。
不过,其中一些人说它们仅适用于Mac OS X(不适用于iOS)。
有人可以向我解释一下Cocoa和Cocoa Touch(在库级别)有什么区别,以便我知道什么代码可以工作,什么不能工作吗?
如何以编程方式访问捆绑种子ID /团队ID /应用标识符前缀字符串? (据我所知,这些都是同一件事)。
我正在使用UICKeychainStore钥匙串包装器在多个应用程序中持久保存数据。 这些应用程序中的每个应用程序在其权限请求者中都有一个共享的钥匙串访问组,并且共享相同的配置文件。 默认情况下,钥匙串服务使用plist中的第一个访问组作为将数据保存到的访问组。 当我调试UICKeychainStore时,它看起来像“ AS234SDG.com.myCompany.SpecificApp”。 我想将访问组设置为“ AS234SDG.com.myCompany.SharedStuff”,但是我似乎无法找到如何以编程方式获取访问组的“ AS234SDG”字符串,并希望避免对其进行硬编码 如果可能的话。