小编Gui*_*gis的帖子

在导航栏中显示搜索栏而不在iOS 11上滚动

我将UISearchController附加到navigationItem.searchControlleriOS 11上的UITableViewController 的属性.这很好用:我可以使用漂亮的iOS 11风格的搜索栏.

但是,我想在发布时使搜索栏可见.默认情况下,用户必须在表格视图中向上滚动才能看到搜索栏.有谁知道这有可能吗?

在此输入图像描述 在此输入图像描述

左:启动后的默认情况.右:搜索栏可见(通过向上滚动).我希望在发布后可以看到搜索栏,如右侧屏幕截图所示.

我已经发现通过将hidesSearchBarWhenScrolling导航项的属性设置为false 可以使搜索栏可见.但是,这会导致搜索栏始终可见 - 即使向下滚动 - 这也不是我想要的.

uinavigationitem ios uisearchcontroller

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

UIScrollView使用自动布局错误偏移

我有一个相当简单的视图配置:

UIViewController,与孩子UIScrollViewUIImageView在此UIScrollView.我设置的UIImageView高度足以突破可见区域(即更高1024pt),并将Bottom space to superviewmy 的约束设置UIImageView为固定的正值(20例如).

项目布局

整个设置按预期工作,图像在其父级中滚动很好.除非滚动视图(如果滚动到视图底部,效果更明显),然后消失,再次出现(您切换到另一个视图并返回)滚动值将恢复,但内容为滚动视图移动到其父视图的外部顶部.

这不是一个简单的解释,我会尝试绘制它: 前一段的视觉表示

如果你想测试/查看源(或故事板,我没有编辑一行代码).我在我的github上放了一个小小的演示:https://github.com/guillaume-algis/iOSAutoLayoutScrollView

我确实阅读了iOS 6更新日志和关于这个特定主题的解释,并认为这是第二个选项(纯自动布局)的正确实现,但在这种情况下,为什么UIScrollView表现如此不规律?我错过了什么吗?

编辑:这是与#12580434 uiscrollview-autolayout-issue完全相同的问题.答案只是解决方法,因为任何人都找到了解决这个问题的正确方法,或者这是一个iOS错误?

编辑2:我找到了另一种解决方法,它将滚动位置保持在用户离开的相同状态(这是对12580434接受的答案的改进):

@interface GAViewController ()

@property CGPoint tempContentOffset;

@end


@implementation GAViewController

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.tempContentOffset = self.mainScrollView.contentOffset;
    self.scrollView.contentOffset = CGPointZero;
}

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    self.scrollView.contentOffset = self.tempContentOffset;
}
Run Code Online (Sandbox Code Playgroud)

这基本上保存了偏移量viewWillAppear,将其重置为原点,然后恢复该值viewDidAppear.问题似乎发生在这两个调用之间,但我无法找到它的起源.

uiscrollview ios autolayout

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

iOS 9.3中出现新的UIPDFPageRenderOperation错误?

我正在为我的UIWebView添加一些PDF链接,每次加载并制作滚动手势时,我都会收到此错误:

objc [910]:UIPDFPageRenderOperation对象0x14acaca10在已经解除分配时被过度释放; 打破objc_overrelease_during_dealloc_error进行调试

那么,当我尝试滚动时,是否正在取消分配UIPDF?

有人提示吗?

uiwebview ios

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

Xcode 6错误'URLWithString'不可用?

请在这里帮助新手.我确定这很简单.

我正在跟进并很好地学习Xode,但我对URL的基本连接感到困惑:

var text = textField.text
var url = NSURL.URLWithString(text)
var request = NSURLRequest(URL: url)
webView.loadRequest(request)
Run Code Online (Sandbox Code Playgroud)

我在上面的第二行收到以下错误:

'URLWithString'不可用:使用对象构造'NSURL(string :)'

(代码是简要教程的一部分:http://www.lynda.com/articles/build-first-ios-app-swift)

nsurl nsstring ios swift

19
推荐指数
3
解决办法
8754
查看次数

如何在iOS上将UILabels中文本的基线与不同的字体大小对齐?

我需要在UILabels中对齐文本的基线.我目前正在做的是我正在调整包含文本的UILabel的基线,当两个标签中的文本字体大小不同时,这会导致对齐的UILabels基线但未对齐的文本基线(未对齐的小幅度,但仍然错位).标签包含在自定义UIView子类中,因此self引用包含的UIView.

这是相关的代码

[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];

self.mySmallLabel.frame = CGRectMake(0,     
                                     self.bounds.size.height - self.mySmallLabel.bounds.size.height, 
                                     self.mySmallLabel.bounds.size.width, 
                                     self.mySmallLabel.bounds.size.height);

self.myBigLabel.frame = CGRectMake(self.mySmallLabel.frame.origin.x + self.mySmallLabel.bounds.size.width, 
                                   self.bounds.size.height - self.myBigLabel.bounds.size.height, 
                                   self.myBigLabel.bounds.size.width, 
                                   self.myBigLabel.bounds.size.height);
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
Run Code Online (Sandbox Code Playgroud)

此代码导致下面链接的图像中的对齐.

Misalignemnt

如您所见,即使UILabel基线对齐,文本的基线也会略微偏移.如何动态对齐文本的基线(因为字体大小可能会在运行时更改)?

iphone ios4 ios

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

不允许从后台线程发布更改;确保从主线程发布值(通过像 receive(on:) 这样的运算符)

我正在使用 Swift 和 SwiftUI 构建一个应用程序。在 MainViewModel 中,我有一个函数调用 Api 从 url 获取 JSON 并将其反序列化。这是在 async/await 协议下进行的。问题是下一个,我从 xcode 收到了下一条评论:“不允许从后台线程发布更改;确保在模型更新时从主线程发布值(通过像 receive(on:) 这样的运算符)。” 在这部分代码中:

func getCountries() async throws{
    
        countries = try await MainViewModel.countriesApi.fetchCountries() ?? []
}
Run Code Online (Sandbox Code Playgroud)

谁称这个为:

func fetchCountries() async throws -> [Country]? {

    guard let url = URL(string: CountryUrl.countriesJSON.rawValue ) else {
        print("Invalid URL")
        return nil
    }
    let urlRequest = URLRequest(url: url)
    do {
        let (json, _) = try await URLSession.shared.data(for: urlRequest)

        if let decodedResponse = try? JSONDecoder().decode([Country].self, from: json) {
            debugPrint("return decodeResponse") …
Run Code Online (Sandbox Code Playgroud)

async-await swift swiftui

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

将lldb输出重定向到文件

我在Xcode中使用lldb,我的一个变量包含大量的JSON数据.使用po myVar对分析这些数据没有多大帮助,因为它将在微小的Xcode调试控制台中输出.

有没有办法将lldb输出重定向到文件?

我在这里看到这样的功能似乎在gdb上可用:

(gdb) set logging on
(gdb) set logging file /tmp/mem.txt
(gdb) x/512bx 0xbffff3c0
(gdb) set logging off
Run Code Online (Sandbox Code Playgroud)

并在lldb中"翻译"为:

(lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
(lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
(lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
Run Code Online (Sandbox Code Playgroud)

但是,该memory read命令对我的情况没有帮助,并且--outfile似乎没有可用于该print命令.

io-redirection lldb

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

如何将NSString HTML标记转换为纯文本NSString?

一直在网上搜索如何将HTML字符串标记转换为纯文本的示例.

我从包含的Feed中获取信息HTML,然后在文本视图中显示此信息.是否UITextView有转换属性HTML或我必须在代码中执行此操作.我试过了:

NSString *str = [NSString stringWithCString:self.fullText encoding:NSUTF8StringEndcoding];
Run Code Online (Sandbox Code Playgroud)

但似乎没有用.有人有任何想法吗?

html iphone objective-c nsstring ios

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

获取UIButton的背景图片

我需要你的建议:我想知道如何在UIImageView中设置UIButton的backgroundImage图像.

即如果我触摸按钮,则应在UIImageView上设置按钮的背景图像.

可能吗?如果是,那怎么样?

iphone objective-c uibutton uiview uiimageview

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

使用jquery动画时如何避免兄弟元素摇晃

我有两个div元素并排.当我将鼠标移到第一个并激活它时,下一个奇怪地摇动.看到这里:http://jsfiddle.net/YqZSv/1/我注意到它只发生在填充和边框时.如果我用边距替换边框,则"摇动"效果会停止.

HTML

<div class='a'></div>
<div class='b'></div>
Run Code Online (Sandbox Code Playgroud)

CSS

.a {
   width: 80px;
   height: 80px;
   padding: 10px;
   border: 0px solid yellow;
   background-color: red;
   display: inline-block
}

.b {
   width: 100px;
   height: 100px;
   background-color: blue;
   display: inline-block;
   margin-left: 20px;
}
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('.a').mouseenter(function(){
    $(this).animate({
        'padding': 0,
        'borderWidth': 10
    });
}).mouseleave(function(){
    $(this).animate({
       'padding': 10,
       'borderWidth': 0
    });
});
Run Code Online (Sandbox Code Playgroud)

我不能使用边距而不是边框​​,因为我使用带边框原点的背景图像,所以我不希望它与其内容一起移动.

有帮助吗?

javascript jquery jquery-animate

10
推荐指数
1
解决办法
2107
查看次数