小编Ast*_*ria的帖子

如何调整图像大小以适应UITableView单元格?

如何适应UITableViewCell(?)UIImage的单元格UITableView.

你addSubview有cell或没有办法调整大小cell.image或UIImage分配给它之前cell.image?

我想保持单元格大小默认(无论你使用零矩形初始化时是什么)并且想要为每个条目添加图片之类的图片.图像略大于单元格大小(表格行大小).

我认为代码看起来像这样(从头到尾):

UIImage * image = [[UIImage alloc] imageWithName:@"bart.jpg"];
cell = ... dequeue cell in UITableView data source (UITableViewController ...)
cell.text = @"bart";
cell.image = image;
Run Code Online (Sandbox Code Playgroud)

我需要做什么来调整图像大小以适应单元格大小?我见过类似的东西:

UIImageView * iview = [[UIImageView alloc] initWithImage:image];
iview.frame = CGRectMake(...); // or something similar
[cell.contentView addSubview:iview]
Run Code Online (Sandbox Code Playgroud)

以上将图像添加到单元格,我可以计算尺寸以适应它,但是:

  1. 我不确定是否有更好的方法,是否UIImageView只是为了调整大小 而添加太多开销cell.image?
  2. 现在我的label(cell.text)需要移动,因为它被图像遮挡了,我看到了一个解决方案,你只需将文本添加为​​标签:

例:

UILabel * text = [[UILable alloc] init];
text.text = @"bart"; …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c uitableview uikit ios

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

DisclosureIndicator不会检测到触摸

我用的UITableViewCellAccessoryDisclosureIndicator是accessoryType 我的UITableViewCell.根据Apple的文档,数据源方法

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
Run Code Online (Sandbox Code Playgroud)

应该自动被调用.

如果单元格已启用且附件类型为UITableViewCellAccessoryDe​​tailDisclosureButton,则附件视图将跟踪触摸,并在轻触时向数据源对象发送tableView:accessoryButtonTappedForRowWithIndexPath:消息.

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[cell.textLabel setText:[datasource objectAtIndex:indexPath.row]];

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

return cell;
}
Run Code Online (Sandbox Code Playgroud)

数据源方法只是一个NSLog但没有打印出来......

我错过了什么吗?(当然,数据源和委托设置正确)

cocoa-touch objective-c uitableview uikit ios

6
推荐指数
1
解决办法
4669
查看次数

UITextView/UILabel具有背景但行间距

我怎样才能在iOS中实现这种风格?

在此输入图像描述

我尝试使用NSAttributedString和设置NSBackgroundColorAttributeName为,blackColor但它没有clearColor行之间的空格.我也试着设置lineSpacing为NSMutableParagraphStyle,但仍然,样式看起来像一个大黑块.

我只需要一个提示,以哪种方式去...谢谢!

换句话说,不是这样的:

在此输入图像描述

cocoa-touch uikit ios

6
推荐指数
2
解决办法
2896
查看次数

AutoLayout:UIView中的UIView框架不正确

我在Storyboard中使用AutoLayout,一切似乎都很顺利.但是,当我将一个UIView放在另一个UIView中并将我想要的所有约束应用于容器及其子容器时,我注意到框架不正确viewDidLayoutSubviews:.考虑到我的约束,它不是我期望计算的框架,而是一些令人作呕的大框架(尽管是正确的起源).例如,而不是{{26,10},{444,10}}的框架,我得到类似{{0,0},{320,568}}的内容.

奇怪的是,这只发生在孩子UIView上,当我把它放在另一个UIView中时,它的超级视图(这是视图控制器的视图)有一些约束应用于它.由于我的印象是我可以根据我在方法中的约束条件正确地构建我的观点viewDidLayoutSubviews:,所以我很困惑为什么会发生这种情况.

我做出了不正确的假设吗?如果有人帮我指出正确的方向,我将不胜感激.谢谢!

注意:如果我依赖于正确的帧依赖设置viewDidAppear:,这个问题就完全解决了,但对我来说这是一个有点不太令人满意的解决方法.

cocoa-touch uiview ios uistoryboard autolayout

6
推荐指数
1
解决办法
7053
查看次数

为什么图层变换会影响UIView的框架?

转换UIView会影响其框架.转换UIView的图层也会以相同的方式影响视图框架.因此,缩放视图的图层,缩放框架.我试图理解为什么变换到图层会影响视图框架(即使view.layer.masksToBounds = NO设置了).

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
NSLog(@"Before: %@", NSStringFromCGRect(view.frame));
// Output: {{0, 0}, {50, 50}}

// View transform applied
view.transform = CGAffineTransformMakeScale(2, 2);
NSLog(@"%@", NSStringFromCGRect(view.frame));
// Output: {{-25, -25}, {100, 100}}


// Layer transform applied
view.transform = CGAffineTransformIdentity;
view.layer.transform = CATransform3DMakeScale(2, 2, 1);
NSLog(@"%@", NSStringFromCGRect(view.frame));
// Output: {{-25, -25}, {100, 100}}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c uiview catransform3d ios

6
推荐指数
1
解决办法
4111
查看次数

iOS 8.3及更高版本,未插入Facebook共享文本

更新到iOS 8.3后,文本不会插入共享对话框

我使用标准

UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:applicationActivities];
NSArray *excludeActivities = @[UIActivityTypeAssignToContact];
vc.excludedActivityTypes = excludeActivities;

if (IsUserInterfaceIdiomPad) {
    vc.popoverPresentationController.sourceView = self.navigationController.view;
}
[self.navigationController presentViewController:vc animated:YES completion:^{

}];
Run Code Online (Sandbox Code Playgroud)

其中的项目是NSString和NSURL

cocoa-touch facebook objective-c ios

6
推荐指数
1
解决办法
6559
查看次数

UIPopoverPresentationController/UIPopoverController在接口旋转时丢失backgroundColor

我在iOS中有一个菜单,我在popover中显示.我可以分别使用UIPopoverController和UIPopoverPresentation控制器在iOS7和iOs8中呈现一个popover.我遇到了一个问题,虽然当弹出窗口可见并且设备旋转时,弹出窗口在动画期间瞬间消失,然后在动画后重新出现.问题是,当弹出窗口重新出现时,其背景颜色被绘制为默认背景颜色.

我正在使用backgroundColor属性设置颜色.

self.popoverPresentationController.backgroundColor = [UIColor grayColor]; // iOS 8 style
Run Code Online (Sandbox Code Playgroud)

我90%肯定这实际上是Apple实施中的一个错误.我在backgroundColorafter rotation属性中看到的值是正确的,但绘制的像素不是.我想知道是否有其他人遇到过这个问题并找到了解决方法.如果雷达打开我会跟着它,如果不是,我会自己提交一个.

我将添加我如何呈现popover.在这两个版本中,我使用barButtonItem作为我的锚点.

[self.menuPopoverController presentPopoverFromBarButtonItem:item permittedArrowDirections:UIPopoverArrowDirectionAny animated:animated];
Run Code Online (Sandbox Code Playgroud)

这里是使用新的iOS8 UIPresentationPopoverController:

UIPopoverPresentationController *popover = self.popoverPresentationController;
popover.permittedArrowDirections = UIPopoverArrowDirectionAny;
popover.barButtonItem = item;
[viewController presentViewController:self animated:YES completion:nil];  // I'm presenting a view controller from within itself.
Run Code Online (Sandbox Code Playgroud)

cocoa-touch popover uipopovercontroller ios presentviewcontroller

5
推荐指数
0
解决办法
2162
查看次数

自定义iOS框架中的资源

我在Xcode 6(FWTest)中创建了一个空的单视图应用程序,并添加了一个Cocoa Touch Framework(FWTestKit)作为目标,并要求它嵌入FWTest.然后我在框架中添加了一个图像(photo.png),当我构建和存档我的应​​用程序时,我希望它在Frameworks/FWTestKit.framework/Versions/A/Resources/photo.png中.但是,我在Frameworks/FWTestKit.framework/photo.png中找到它

我怎样才能使它至少在Resources文件夹中?最好是一个版本化文件夹,以便我可以发布我的框架的不同版本?

当我将此框架添加到另一个应用程序时,是否需要执行任何特殊操作以确保资源与其捆绑在一起,以便当我从框架中引用资源时,我可以确定它在使用时也可用在另一个应用?

干杯

聂

resources cocoa-touch frameworks ios ios8

5
推荐指数
1
解决办法
1162
查看次数

使用动画进行 WebView 页面更改

我一直在网上搜索如何将动画合并到 UIWebView 控件中的示例,但一无所获。

我对动画并不挑剔(一旦我了解了如何将其附加到动作上,我就可以搞乱它),我只想要不仅仅是从一个网页到另一个网页的鲜明过渡、卷曲的页面、从左侧开始的动画(旧页)到右(新页),无论怎样都可以。

有人可以发布一个示例或将我引导到一个页面来解释我如何执行此操作吗?我阅读了 CATransition 上的文档,但我仍然不知道如何将其合并到我的 UIWebView 导航中。

cocoa-touch objective-c uiwebview uikit ios

5
推荐指数
1
解决办法
1590
查看次数

使用Xcode和Interface Builder创建原型视图

我正在构建一个NSView,它是一种集合视图,但它不是表格或网格,而是图形编辑器(类似于石英作曲家).

我现在面临的问题是我想从xib文件中加载原型视图(用于节点).就像UITableView和UICollectionView如何让您在Interface Builder中设计原型单元格一样.但是这些对象如何在多个副本中实例化?

UITableViewController等如何.人.实现这个?

我想过的解决方案:

  • 复制视图,但NSView不支持NSCopying"开箱即用".到目前为止,这似乎是最合乎逻辑的.如果你想将NSView保留在一个storyboard而不是一个中,它似乎也是唯一的选择xib.
  • 加载笔尖然后发送[nib instantiateNibWithOwner:self topLevelObjects:nil]多次.
  • NSView支持,NSCoding但使用它感觉更像是一个黑客.

还有什么想法吗?

我正在开发Mac OS X应用程序,而不是iOS应用程序.

macos xcode cocoa objective-c

5
推荐指数
1
解决办法
199
查看次数