多种颜色NSString或NSMutableStrings不可能.所以我听说过一些关于iPad SDK 3.2(或3.2左右)NSAttributedString引入的内容,并且可以在iPhone SDK 4.0 beta版的iPhone上获得.
我想要一个有三种颜色的字符串.
我不使用3个单独的NSStrings的原因是因为三个NSAttributedString子串中的每个子串的长度经常变化,所以我更喜欢,不使用任何计算来重新定位3个单独的NSString对象.
如果可以使用NSAttributedString我如何进行以下操作 - (如果不能使用NSAttributed字符串,你会怎么做):

编辑:
请记住,@"first",@"second"并@"third"会在任何时间其他字符串替换.因此,使用硬编码的NSRange值将不起作用.
我对自动布局的理解是,它采用超视图的大小,并以约束和内在大小为基础计算子视图的位置.
有没有办法扭转这个过程?我想在约束和内在大小的基础上调整superview的大小.实现这一目标的最简单方法是什么?
我有在Xcode中设计的视图,我用它作为标题UITableView.该视图包括标签和按钮.标签的大小因数据而异.根据约束条件,标签成功按下按钮,或者如果按钮和superview底部之间存在约束,则标签将被压缩.
我找到了一些类似的问题,但他们没有很好的答案.
我正在将一个应用程序从iOS 6.1移植到iOS 7.我正在使用一个布局,其中有一个UITextView具有固定宽度,但它的高度基于其内容.对于iOS 6.1,检查contentsize.height并将其设置为textview的帧高度就足够了,但它在iOS 7上不起作用.
然后,我如何UITextView根据它显示的文本创建一个固定宽度,但动态高度?
注意:我是从代码创建这些视图,而不是使用Interface Builder.
我需要制作一个UITableViewCell包含大量文本的内容.我知道我可以添加UITextView到我的单元格,但每个条目都不会有相同数量的文本.
我知道我可以控制UITableViewCellwith 的高度:-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath,但那不是我想要的.
场景1:
---------------
| First Cell |
---------------
---------------
| Second Cell |
| with some |
| text. |
---------------
---------------
| Third Cell |
---------------
Run Code Online (Sandbox Code Playgroud)
场景2:
---------------
| First Cell |
---------------
---------------
| Second Cell |
| with some |
| more text and |
| an unknown |
| cell height. |
---------------
---------------
| Third Cell |
---------------
Run Code Online (Sandbox Code Playgroud) 我有一个包含自定义单元格的UITableViewController.每个单元格都是使用nib创建的,并包含一个不可滚动的UITextView.我在每个单元格中添加了约束,以便单元格将其高度调整为UITextView的内容.所以最初我的控制器看起来像这样:
现在我希望当用户在单元格中键入内容时,其内容会自动适应.这个问题已被多次询问,特别是这里或第二个答案.因此,我在代码中编写了以下代理:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text {
[self.tableView beginUpdates];
[self.tableView endUpdates];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
然而,它会导致以下奇怪的行为:忽略所有约束,并且所有单元格高度都会崩溃到最小值.见下图:
如果我向下滚动tableView以强制进行新的cellForRowAtIndexPath调用,我将恢复单元格的正确高度:
请注意,我并没有如我所料的autoLayout来照顾这实现heightForRowAtIndexPath.
有人能告诉我我做错了什么或帮助我吗?非常感谢你 !
我有一个UITableView,我在其中显示一个自定义单元格.我的单元格我有两个标签和一个视图如下图所示.
我像这样给了左视图的约束
物品标签限制
中心视图约束
正确的观点
我使用bean类来存储两个标签的数据,并将该bean对象添加到一个数组中.我在heightForRowAtIndexPath中使用下面的代码.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// Calculate a height based on a cell
if(!self.customCell) {
self.customCell = [self.tableView dequeueReusableCellWithIdentifier:@"thirdcell"];
}
// Configure the cell
Instrument *inst=[arr_instSpecs objectAtIndex:indexPath.row];
self.customCell.label_item.text=inst.item;
self.customCell.label_desc.text=inst.desc;
// Layout the cell
[self.customCell layoutIfNeeded];
// Get the height for the cell
CGFloat height = [self.customCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
// Padding of 1 point (cell separator)
CGFloat separatorHeight = 1;
return height + separatorHeight;
}
Run Code Online (Sandbox Code Playgroud)
问题是标签的高度和表视图单元都没有增加.我已经解释了一切.我想在标签文本增加时增加标签的大小,并且当标签大小增加时,单元格的高度必须增加.
我正在创建一个评论部分,就像Facebook在iOS应用程序中使用它的消息部分一样.我希望UITextView调整高度,以便我输入的文本适合它,而不是你必须滚动才能看到溢出的文本.我有什么想法可以这样做吗?我调查了可能使用的CGRect是分配给文本视图的大小和高度,然后匹配内容大小:
CGRect textFrame = textView.frame;
textFrame.size.height = textView.contentSize.height;
textView.frame = textFrame;
Run Code Online (Sandbox Code Playgroud)
我假设我需要某种功能来检测文本何时到达边界UITextView然后调整视图的高度?有没有人在用同样的概念挣扎?
我正在使用此代码
CGRect frame = self.mytext.frame;
frame.size.height = self.mytext.contentSize.height;
self.mytext.frame = frame;
Run Code Online (Sandbox Code Playgroud)
但它在iOS 7中不起作用.有谁知道为什么或有同样的问题?
编辑:
抱歉.我制作了一个UIView,一个UITextView和一个UIScrollView,所以我可以在我的uitextview展开中加载文本.
我在viewDidLoad中使用了这段代码
CGRect frame = self.moreDetailsTextView.frame;
frame.size.height = self.moreDetailsTextView.contentSize.height;
self.moreDetailsTextView.frame = frame;
CGRect moreViewFrame = self.moreDetailsView.frame;
moreViewFrame.size.height = frame.size.height + 270;
self.moreDetailsView.frame = moreViewFrame;
int scrollViewHeight = moreViewFrame.size.height + 235;
self.scrollView.contentSize = CGSizeMake(320, scrollViewHeight);
Run Code Online (Sandbox Code Playgroud)
这在ios6中运行良好,但是现在使用xcode5和ios7,当我在模拟器中测试应用程序时,uitextview不会扩展.
有没有办法确定一个类是否适合作为键并且将按预期工作,例如我想在NSDictionary中使用NSIndexPath作为键,但我不确定两个不同的NSIndexPath实例是否具有相同的整数值将始终返回相同的哈希值.
我已经为这两天苦苦挣扎了,所以我和互联网的聪明人一起参与其中.
我正在展示一篇文章作为我的一部分UITableView.为了正确显示,我需要给代表一个单元格的高度,我希望它与UIWebView高度相同,所以我可以在WebView上禁用滚动并将整个Web内容显示为静态细胞.
我的第一种方法是在heightForRowAtIndexpath方法中渲染它,但这显然不起作用,因为我需要等待UIWebViewDelegate告诉我何时Web视图完全加载并具有高度.过了一会儿,我发现了一个工作解决方案,它使用Web视图委托在加载Web视图时刷新单元格高度.
工作正常,直到屏幕大小改变.无论是旋转还是全屏我的UISplitView.我强制对它进行更新didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation),但是这会使它闪烁大约10次然后才能进入正确的高度.我记录了这个更改,似乎WebView多次调用自身,导致循环.
曾经出现在这个日志,从我旋转屏幕开始.
每次重新加载时它会闪烁一次,正如您所看到的,它会自动重新加载一次.
所以.我需要一种在uitableview中显示整个Web视图内容的方法,并在屏幕大小更改时可靠地获取高度.如果有人以前以任何方式管理过这个,请告诉我.我会给任何可以解决这个问题的人一个赏金和我的长子,因为它让我疯了.
这是我的相关代码.
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
switch indexPath.row {
case 4:
//Content
print("Height for row called")
return CGFloat(webViewHeight)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
switch (indexPath.row){
//HTML Content View
case 4:
let cell = tableView.dequeueReusableCellWithIdentifier("ContentCell", forIndexPath: indexPath)
var contentCell = cell as? ContentCell
if contentCell == nil {
contentCell = …Run Code Online (Sandbox Code Playgroud) ios ×9
uitableview ×5
uitextview ×5
autolayout ×3
cocoa-touch ×2
ios7 ×2
iphone ×2
objective-c ×2
swift ×2
cgrect ×1
cocoa ×1
ios4 ×1
macos ×1
row-height ×1
textcolor ×1
uiview ×1
uiwebview ×1