Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 26

0
votes
answers
24 views
+10

Xcode iOS project only shows “My Mac 64-bit” but not simulator or device

This just started happening that my iOS project is only showing "My Mac 64-bit" rather than the Simulator or my iPhone to build to. I have no idea why this is happening. I do not think that I have changed anything.

enter image description here

I have my project set to iOS 5 as the base SDK, but no matter what I do it seems to never show my any other options to build for. I have restarted Xcode a few times, and still no luck.

Why is the happening?

Xcode 4.2, Build 4D199

0
votes
answers
48 views
+10

axios,api,laravel得到:get方法正在工作..但對於post方法cors錯誤

0

使用axios。我的get方法正在工作,但post方法顯示cors錯誤。並獲得chome-> networs->頭axios,api,laravel得到:get方法正在工作..但對於post方法cors錯誤

axios.get('http://127.0.0.1:8000/api/login', { 
      params : { 

       username:username, 
       password:password, 
      } 
      }) 
      .then(function(response) { 
       console.log(response) 
      }) 
      .catch(function(error) { 
       console.log(error) 
      }) 

頁眉響應不同的響應頭爲獲得職位

Access-Control-Allow-Origin * 
    Access-Control-Allow-Methods POST, GET, OPTIONS, PUT, DELETE 
    Access-Control-Allow-Headers 
    Content-Type, X-Auth-Token, Origin 

頭響應

Allow  POST 
    Access-Control-Request-Method  POST 
    Access-Control-Request-Headers  content-type 

幫我PLZ .....

沙发
0
0

我會得到同樣的問題

而且我想this url和解決我的問題

請試試這個....

+0

感謝ü....它的作品 – priya

0
votes
answers
42 views
+10

ReactNative ipa在Splash屏幕後崩潰

0

我是ReactNative的新手,如果設備是通過USB(Android和iOS)連接的,我已經使用ReactNative創建了項目,並且它也在模擬器上運行。ReactNative ipa在Splash屏幕後崩潰

但現在我需要將它發送到客戶端,所以我遵循以下步驟,並創建它在設備上安裝的ipa,但在啓動屏幕後關閉。請幫助任何幫助,將不勝感激。

這裏是我遵循的步驟:

1.Executed上終端 反應天然束--dev假--entry文件index.js --bundle輸出IOS/main.jsbundle命令 - -platform IOS

2.commented這一行AppDelegate.m:

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@ 「索引」 fallbackResource:無];]; 並且這增加了一個:

jsCodeLocation = [[一個NSBundle mainBundle] URLForResource:@ 「主」 withExtension:@ 「jsbundle」];

但它並沒有幫助,然後我跟着:

  1. 開業的info.plist和擴大應用傳輸安全設置和例外域。在那裏你會發現localhost條目並被刪除。

2.轉到產品 - >方案 - >在xCode編輯方案。選擇運行選項卡並將生成配置下拉列表設置爲發佈。

然後產品 - >存檔和導出的IPA,但沒有爲我工作。 在此先感謝。

+0

您是否添加了正確的配置配置文件和證書?請再檢查一次嗎? –

+0

@ Ashok Londhe 1我正在使用自動證書籤署 – user1841079

+0

我認爲你必須從開發者帳戶創建證書,然後將其存儲到鑰匙串中,然後您需要選擇Xcode中的配置文件並設置適當的證書 –

沙发
0
0

解決錯誤是我使用ScrollView的問題,在React-Native 0.51.0中有一些ScrollView的問題我將React-native的版本降級到0.49.0,它解決了問題,並做到了這一點在終端上運行命令: npm install --save [email protected]

0
votes
answers
31 views
+10

刪除UIWebView中網站標題後的空白

0

你好我打開的網站在UIWebView中有標題。我用下面的代碼去掉那個頭文件。它將刪除標題,但不會將下一個項目移到頂部。它在標題視圖的位置顯示一個空白填充。刪除UIWebView中網站標題後的空白

func webViewDidFinishLoad(_ webView: UIWebView) { 
    webView.scrollView.contentInset = UIEdgeInsets.zero 
    webView.stringByEvaluatingJavaScript(from: "$(document).ready(function() { $('div.header').remove(); })") 
} 
沙发
0
0

我通過向網頁發送另一個javascript代碼來解決它;

webView.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('wrapper')[0].style.paddingTop = '0px';") 
0
votes
answers
31 views
+10

在繼續之前等待API調用返回

0

我在javascript中很弱,但我想我明白髮生了什麼問題。只是不夠流暢,無法知道如何修復它,甚至不知道如何正確編寫它。我有一個VueJS應用程序,它向access_token的API發送請求。當access_token到期時,它會向API發送refresh_token,並獲取新的access_token。我希望它能夠在它過期時重新運行正在運行的請求。使用下面的代碼我會得到奇怪的行爲。當它遇到401時,我可以看到它訪問/token端點並獲得新的access_token但是,下一個撥打/brewery的電話正在使用舊的access_token。在對/brewery的呼叫最終使用新的access_token並且循環停止之前,這發生約5次。我的猜測是,當我撥打this.loaded()撥打auth.refreshToken()尚未完成?在繼續之前等待API調用返回

loaded(access_token){ 
     var headers; 
     if(access_token) 
     { 
      headers = { 'Authorization': 'Bearer ' + access_token } 
     } 
     else 
     { 
      headers = auth.getAuthHeader(); 
     } 
     axios.get(this.getBaseUrl + '/brewery/', { headers }) 
      .then((response) => { 
       this.breweries = response.data.data.slice(0);      
      }) 
      .catch((error) => {      
       if(error.response.status == 401) 
       { 
        console.log("error 401"); 
        var new_access_token = auth.refreshToken(); 
        this.loaded(new_access_token); 
       } 
      }); 
    } 

驗證類

refreshToken(context) { 
var token = 
{ 
    refresh_token: localStorage.getItem('refresh_token'), 
    grant_type: 'refresh_token' 
}; 
token = querystring.stringify(token); 
axios.post(LOGIN_URL, token) 
    .then((response) => { 
    localStorage.removeItem('access_token'); 
    localStorage.setItem('access_token', response.data.access_token); 
    this.checkLoggedIn(); 
    if(!this.isAdmin()) 
    { 
     context.error = "You are not an admin user"; 
    } 
    return response.data.access_token; 
    }) 
    .catch(function (error) { 
    if(error.response){ 
     if(error.response.status == 400) 
     { 
     console.log(error.response.data); 
     context.error = error.response.data; 
     } 
    } 
    }) 

}

沙发
0
1

這看起來像承諾鏈/結構的問題。撥打this.loaded撥打電話auth.refreshToken已完成後,您應該使refreshToken方法返回承諾。具體來說,它應該返回axios.post呼叫。那axios.post調用,成功時實際上是在執行這一行return response.data.access_token;並解析令牌。現在,當你撥打電話到auth.refreshToken你應該附加一個then塊,像這樣:

auth.refreshToken().then((token) => { this.loaded(token) }) 

不同步的方式構建這個代碼,你會得到多次調用this.loaded,因爲每個人都會以失敗陳舊的令牌......或者至少是一個未定義的令牌。

0
votes
answers
36 views
+10

如何檢查iPhone應用程序的網絡活動?

-1

我有一個應用程序,我懷疑是使用了很多我的網絡數據,但沒有說清楚。如何檢查iPhone應用程序的網絡活動?

我想檢查正在製作的HTTP請購單,這甚至有可能嗎?

我搜索了很多,但我發現的是局域網監控應用程序(這與我想要的無關)。

+1

你試過用Charles嗎? https://www.charlesproxy.com/ – TylerTheCompiler

+0

我會給它一個鏡頭。一位同事提出了同樣的建議。 –

沙发
0
0

你不能在你的應用程序設置下檢查嗎?還是數據使用?重置爲默認值,然後啓動您的應用程序並監視已使用了多少。然後嘗試不啓動應用程序。比較和對比

+0

要衡量數據使用情況,我可以這樣做。但我想知道更多關於發生了什麼情況,以及爲什麼要提出這些申請。 –

+0

除非它的開放代碼,你可能會掙扎 – user3236169

311
votes
answers
14 views
+10

UITableViewHeaderFooterView: Unable to change background color

I'm trying to change the background color of UITableViewHeaderFooterView. Although the view is appearing, the background color remains the default color. I'm getting a log from xcode saying:

Setting the background color on UITableViewHeaderFooterView has been deprecated. Please use contentView.backgroundColor instead.

However, none of the following options work:

myTableViewHeaderFooterView.contentView.backgroundColor = [UIColor blackColor];
myTableViewHeaderFooterView.backgroundView.backgroundColor = [UIColor blackColor];
myTableViewHeaderFooterView.backgroundColor = [UIColor blackColor];

I've also tried changing the background color of the view in the xib file.

Any suggestions? Thanks.

up vote 75 down vote accepted favorite
沙发
+750
+50

您應該使用myTableViewHeaderFooterView.tintColor,或者為myTableViewHeaderFooterView.backgroundView指定自定義背景視圖。

myTableViewHeaderFooterView.tintColor完美運行。謝謝你的回答! - 2013年3月24日23:01

不知道為什麼,但對我來說tintColor不適用於iOS7。我只能通過分配自定義視圖來改變顏色:myTableViewHeaderFooterView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@“myImage.png”]]; - skywinder 2014年1月16日6:28

TintColor不是背景色!! - JoãoNunes於2014年10月1日12:29

仍然可以在iOS 12上運行。 - Yonat 18年11月7日在13:29

+1730

iOS 8,9,10,11 ......

設置任何顏色(使用任何alpha)的唯一方法是使用 backgroundView < p> Swift

  self.backgroundView = UIView(frame:self.bounds)self.backgroundView.backgroundColor = UIColor(白色:0.5,alpha:0.5)  

Obj-C

  self .backgroundView =({UIView * view = [[UIView alloc] initWithFrame:self.bounds]; view.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5]; view;});   

對評論的回應

  • 這些其他選項都沒有可靠地工作(儘管下面的評論)

      // self。 contentView.backgroundColor = [UIColor clearColor]; // self.backgroundColor = [UIColor clearColor]; // self.tintColor = [UIColor clearColor];    
  • 自動調整 backgroundView 的大小。(無需添加約束)

  • 使用 UIColor(白色:0.5,alpha:0.5)或<控制alpha code> backgroundView.alpha = 0.5
    (當然,任何顏色都可以)

  • 使用時XIB ,使根視圖成為< 代碼> UITableViewHeaderFooterView 並以編程方式關聯 backgroundView

    註冊:

      tableView.register(UINib(nibName:”View“,bundle:nil),forHeaderFooterViewReuseIdentifier:”header“)  

    加載:

     覆蓋func tableView(_ tableView:UITableView,viewForHeaderInSection section:Int) - &gt; UIView的?{if let header = tableView.dequeueReusableHeaderFooterView(withIdentifier:“header”){let backgroundView = UIView(frame:header。
         
    			
            

contentView不存在,這就是原因。tintcolor是為視圖著色而不是它的背景。和backgroundcolor已棄用。因此,您的方式是使其工作的方式。Btw很好的代碼語法 - JoãoNunes2014年10月1日12:30

這對我有用。謝謝! - Tuslareb 2014年10月5日7:48

@JoãoNunes,C#/ Xamarin的語法更整潔:view.BackgroundView = new UIView(view.Bounds){BackgroundColor = UIColor.Clear}; - crishoj 2014年11月3日6:03

在Xcode 6.1.1中,您會收到運行時控制台警告:不建議在UITableViewHeaderFooterView上設置背景顏色。請改用contentView.backgroundColor。 - Albert Bori 14年6月6日4:38

對於仍然收到警告的人:確保UITableViewHeaderFooterView沒有在IB中設置backgroundColor。 - Tuslareb 2016年2月13日19:40

+180

在iOS 7 contentView.backgroundColor 為我工作, tintColor 沒有。

  headerView.contentView.backgroundColor = [UIColor blackColor ]。  

雖然 clearColor 對我來說不起作用,但我找到的解決方法是將 backgroundView 屬性設置為透明圖像。也許它會幫助某人:

  UIGraphicsBeginImageContextWithOptions(CGSizeMake(1,1),NO,0.0); UIImage * blank = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); headerView.backgroundView = [[UIImageView alloc] initWithImage:blank];  
     
			
        

我認為這是比@SwiftArchitect的答案更好的方法(雖然它有效)。您不必添加新的UIView這一事實會讓事情變得更好。為我工作完美。 - ErickA.Montañez17年10月11日20:13

這應該是公認的答案 - onmyway133 2月9日'18在10:27

+110

確保為 UITableViewHeaderFooterView 設置 contentView 的backgroundColor:

  self.contentView.backgroundColor = [UIColor whiteColor] ;   

然後就可以了。

iOS> = 10只!對於iOS <10使用:backgroundView?.backgroundColor = UIColor.white - Peter Kreinz 17年6月21日在7:43

+90

對我來說,我嘗試了上述所有內容但仍然收到警告“在UITableViewHeaderFooterView上設置背景顏色已被棄用。請改用contentView.backgroundColor。” 然後我嘗試了這個:在xib文件中,標題視圖的背景顏色被選中以清除顏色而不是默認顏色,一旦我將其更改為默認警告就消失了。

+50

對於清晰的顏色,我使用

  self.contentView.backgroundColor = [UIColor clearColor]; self.backgroundView = [UIView new]; self.backgroundView.backgroundColor = [UIColor clearColor];   

對我來說似乎很好。

設置backgroundView = UIView()然後backgroundColor = .clear是唯一可行的解​​決方案。謝謝。 - Vive 17年5月16日7:58

+40

iOS9 headerView.backgroundView.backgroundColor 為我工作:

   - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {TableViewHeader * headerView =(TableViewHeader *)[super tableView:tableView viewForHeaderInSection:section]; headerView.backgroundView.backgroundColor = [UIColor redColor]; }   

iOS8 上我使用 headerView.contentView.backgroundColor 沒有問題,但現在使用iOS 9,我變得很奇怪使背景顏色不填充細胞的整個空間的問題。所以我嘗試了 headerView.backgroundColor ,我從OP得到了同樣的錯誤。

不推薦在UITableViewHeaderFooterView上設置背景顏色。請改用contentView.backgroundColor。

所以現在一切都很好,沒有警告,使用 headerView.backgroundView.backgroundColor

+40

如果使用 xib 文件創建 UITableViewHeaderFooterView 的自定義子類,則應覆蓋 setBackgroundColor 保持空虛。

   - (void)setBackgroundColor:(UIColor *)backgroundColor {}   

這將解決您的問題。

這對我來說是正確的答案。雖然我沒有在HeaderFooterView中設置任何背景顏色,但警告消息在我的控制台日誌中不斷出現。很煩人! - stan liu 2017年2月15日6:45

安裝Snow Leopard和新的iPhone SDK(Xcode 3.2)後會發生這種情況嗎? - avocade 09年9月28日在13:45

我的回答解決了這個問題。請檢查。 - 約旦2010年10月16日14:44

在答案中未討論的另一種可能性是,如果您添加了對非通用框架的引用(即您添加了armv6 / armv7框架,然後嘗試進行模擬器構建),則會出現此錯誤。如果您構建自己的自定義框架,這主要是一個問題。 - 2011年5月26日在23:11

@aroth也是正確的,請檢查這個問題 - ArkReversed 2013年9月19日8:44

+40

如果您自定義某個部分帶有Storyboard / Nib 的標題單元格,然後確保“Table Section Header”視圖的背景顏色為默認

如果您繼承 UITableViewHeaderFooterView ,並且使用nib,那麼你要做的就是為內容視圖創建一個 IBOutlet ,並將其命名為。<代碼> containerView 這不要與 contentView 混淆,後者是此容器視圖的父級。

使用該設置,您可以更改 containerView 的背景顏色

+40

在界面構建器中,拉出.xib,在頂部元素上,在屬性檢查器中將背景顏色設置為默認值。然後轉到內容視圖並在那裡設置背景顏色(參考 https:// github的.com / jiecao-FM / SwiftTheme /問題/ 24 )。

謝謝,我的pbxproj文件中也有一個迷路的LIBRARY_SEARCH_PATHS密鑰。密鑰在Xcode 3的項目設置中以粗體顯示,但沒有任何價值。這讓我相信有些不對勁。我確實在Xcode 4 Preview 5中打開了一次項目,之後發生了這種情況。 - mvexel 2011年1月11日11:13

+30

對於純色背景,設置 contentView.backgroundColor 應該足夠了:

  func tableView(_ tableView:UITableView,willDisplayHeaderView視圖:UIView,forSection部分: Int){if let headerView = view as?UITableViewHeaderFooterView {headerView.contentView.backgroundColor = .red // Works!  

對於具有透明度的顏色,包括 .clear 顏色,這不再有效:

  func tableView(_ tableView :UITableView,willDisplayHeaderView視圖:UIView,forSection section:Int){if let headerView = view as?UITableViewHeaderFooterView {headerView.contentView.backgroundColor = .clear //不起作用 
			
        

這是我的問題。每次我添加一個新庫時,它都添加了一堆搜索目錄。即使我刪除引用曾經導致問題的搜索目錄條目。 - darshansonde 12年1月18日13:43

在我的案例中,“框架搜索路徑”已經是空的。我得到的確切錯誤是ld:為iOS模擬器構建,但是為針對架構i386 clang的MacOSX文件'/usr/lib/libSystem.B.dylib'構建的dylib鏈接:錯誤:鏈接器命令失敗,退出代碼為1(使用-v來查看調用我在Mavericks上使用SDK 7.0。 - Ans 10年3月30日在5:02

我有同樣的錯誤,我從構建設置下的框架搜索路徑中刪除了值,現在它成功編譯。 - Nirav 2015年9月12日14:33

+10

我嘗試使用appearanceWhenContainedIn鏈,它對我有用。

  [[UIView appearanceWhenContainedIn:[UITableViewHeaderFooterView class],[UITableView class],nil] setBackgroundColor:[UIColor.grayColor] ]。 
     
			
        

我有同樣的問題讓我絕對瘋狂。看起來你們知道解決方案,但我找不到“project.pbxproj”文件,找不到“編輯項目設置”所在的位置。 - saman01 11年7月7日在2:56

在XCode 4.2.1中,我發現如下:在Project Navigator中單擊項目名稱。在出現的屬性屏幕中,選擇“構建設置”選項卡。搜索路徑位於此屏幕中。刪除它們對我有用。 - dsteele 12年12月12日23:16

0

使用清晰的顏色設置BackgroundView可以正常顯示可見標題。如果滾動表以顯示底部的標題,則此解決方案將失敗。

PSMy表僅包含沒有任何單元格的標題。

0

Swift:

  func tableView(tableView:UITableView,viewForHeaderInSection section:Int) - &gt; UIView {var headerView:TableViewHeader = super.tableView(tableView,viewForHeaderInSection:section)as!TableViewHeader headerView.backgroundView.backgroundColor = UIColor.redColor()}  
     
			
        
0

創建UIView並設置背景顏色,然後將其設置為self.backgroundView。

   - (void)setupBackgroundColor:(UIColor *)color {UIView * bgView = [[UIView alloc] initWithFrame :self.bounds]; bgView.backgroundColor = color; self.backgroundView = bgView; }  
     
			
        

我要開始一個新項目。哦,井。 - Gabe Shahbazian 09年9月23日0:59

您可以從目標的信息面板修復“框架搜索路徑”構建設置。 - 約翰Cromartie 09年9月23日在16:48

我收到了錯誤,但沒有上述框架問題。奇怪的是,在一台計算機上,該項目可以從SVN中檢出並構建得很好,而在另外兩台計算機上,它突然導致每次構建時出現此錯誤。在嘗試各種其他解決方案之後,唯一(而且相當簡單)的修復方法是創建一個新的空白項目並將所有文件移入其中。 - mmattke 2011年9月8日18:18

這種方法對我有用。我有一個工作項目集,突然停止構建一天只有一個配置。沒理由。使用上面的textmate技術並註意到該配置中缺少“$(SDKROOT)/ Developer / Library / Frameworks”。不知道為什麼,我無法使用Xcode看到這一點。 - Rob於2012年5月12日19:22

0

我覺得有必要分享我的經驗。我有這段代碼適用於iOS 10和iOS 11 headerView?.contentView.backgroundColor = .lightGray

然後我突然決定部署應用程序對於iOS 9,因為有一些設備(一些老一代的iPad mini不會更新到9以上的任何操作系統) - 適用於所有iOS 9,10和11的唯一解決方案是為頭部定義一個基本視圖,然後包含所有其他標題子視圖,從故事板開始連接並設置該基本視圖的 backgroundColor

在連接插座時,您需要注意不要調用它: backgroundView 因為在某些超類中已經存在具有該名稱的屬性。我叫我<

模擬器是否支持AppleScript? - Rog 3月28日'09時8:00

是的,它確實。我編寫了一個AppleScript來遍歷每個設備和操作系統版本的所有iOS模擬器並重置其內容和設置:github.com/michaelpatzer/ResetAllSimulators - mpatzer 2014年5月27日14:24

0

可能因為backgroundView不存在

 覆蓋func draw(_ rect:CGRect){//繪圖代碼讓view = UIView()view.frame = rect self.backgroundView =查看self.backgroundView?.backgroundColor = UIColor.yourColorHere}   

對我有用。

在代碼中添加一些說明。 - 比拉2012年12月17日9:47

那些字段已經是空的。我仍然得到這樣的錯誤。 - Dainius Kreivys 2016年9月17日22:53

0
votes
answers
37 views
+10

如何在不選擇表格視圖的單元格的情況下將搜索欄作爲第一響應者?

0

我有一個表格視圖,上面有一個搜索欄。我想要實現以下行爲:當輕敲搜索欄,然後用戶點擊其他任何地方時,搜索欄將成爲第一響應者(鍵盤被隱藏),但同時,表視圖的單元格沒有被選中。我不使用其他視圖進行搜索。這是我的一個搜索欄表視圖的樣子(我知道,有一個問題與表視圖的分隔符,當我跑我在模擬器項目想不通爲什麼。):如何在不選擇表格視圖的單元格的情況下將搜索欄作爲第一響應者?

enter image description here

目前,當我點擊其他地方時,搜索欄成爲第一響應者的辭職,但問題是,單元格也被選中。這樣可以,但有時候,當我有更復雜的單元格時(不像圖像中的單元格),視圖之間的轉換並不是非常平滑。如果你知道如何使轉換順利進行,那也可以,或者,如果有關實現上述行爲的建議,我將不勝感激。

+0

您是否嘗試過滑動手勢?向下滑動即可解散 – Mannopson

+1

全屏(全屏)打開模擬器。這不是分離器不存在的問題! – Lion

+0

@Lion,我做到了。當我滾動時,一些分隔符出現,而其他分隔符消失。 –

沙发
0
1

這樣做的另一種方法是正確實施您的tableView didSelectRow委託方法。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if searchBar.isFirstResponder { 
     searchBar.resignFirstResponder() 
     tableView.deselectRow(at: indexPath, animated: false) 
     return 
    } 

    // perform your actions (present/push controller, etc.) 
} 

如果您嘗試在真實設備上測試您的應用程序,您將會看到,tableView中的分隔符沒有問題。這只是模擬器問題:)

+0

是的,我知道分隔符的行爲就像只在模擬器上那樣。有時候我覺得我是唯一一個和他們有這個問題的人) –

+0

這是行不通的。轉換仍然被調用。我還嘗試使用'if'語句來檢查搜索欄是不是'prepare(for:sender:)'方法中的第一響應者,但無論如何都會被調用。 –

+1

如果你正在設置Storyboard中的Triggered Segues,那麼情況就是這樣。打開它,從cell中移除segue並在'didSelectRowAt'方法中的if語句之後手動執行它(用適當的segue標識符調用'performSegue') –

板凳
0
2

UITapGestureRecognizer放在您的表格視圖上以響應水龍頭。

默認情況下,將水龍頭識別器設置爲禁用。

tapRecognizer.isEnabled = false 

當搜索欄變爲活動狀態時,重新啓用水龍頭識別器。

tapRecognizer.isEnabled = false 

當它識別到輕敲時,通過退出搜索欄的第一個響應者來關閉鍵盤。另外請確保禁用水龍頭識別器,以便像往常一樣選擇表格視圖單元格。

@objc private func handleTap(recognizer: UITapGestureRecognizer) { 
    searchBar.resignFirstResponder() 
    recognizer.isEnabled = false 
} 
+1

我認爲這是一個正確的解決方案! – Mannopson

+0

我應該將「UITapGestureRecognizer」添加到表格視圖本身還是添加到視圖控制器?當我將它添加到一個VC,並按照你所說的做,它仍然選擇該行。也許我做錯了什麼? –

+0

@TigranIskandaryan嘗試將其添加到表視圖。如果這不起作用,您可以使用與表格視圖相同的框架在表格視圖上方創建新視圖。將它的背景色設置爲'.clear'並將識別器添加到該視圖。 – nathan

0
votes
answers
23 views
+10

繪畫時顏色不一致

0

我有一個UIImageView,並使用UIColor orangeColor繪製它。現在,我有一個功能,應該檢測點擊像素的pixelColor。繪畫時顏色不一致

R:1.000000 G:0.501961 B:0.000000

這是RGB值試圖檢測的pixelColor爲UIOrange

它應該是當我收到。

R:1.000000 G:0.5 B:0.000000

這裏是我的功能

- (UIColor *)colorAtPixel:(CGPoint)point { 
    // Cancel if point is outside image coordinates 
    if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, _overlay_imageView.frame.size.width, _overlay_imageView.frame.size.height), point)) { 
     return nil; 
    } 


    // Create a 1x1 pixel byte array and bitmap context to draw the pixel into. 
    // Reference: http://stackoverflow.com/questions/1042830/retrieving-a-pixel-alpha-value-for-a-uiimage 
    NSInteger pointX = trunc(point.x); 
    NSInteger pointY = trunc(point.y); 
    CGImageRef cgImage = _overlay_imageView.image.CGImage; 
    NSUInteger width = CGImageGetWidth(cgImage); 
    NSUInteger height = CGImageGetHeight(cgImage); 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    int bytesPerPixel = 4; 
    int bytesPerRow = bytesPerPixel * 1; 
    NSUInteger bitsPerComponent = 8; 
    unsigned char pixelData[4] = { 0, 0, 0, 0 }; 
    CGContextRef context = CGBitmapContextCreate(pixelData, 
               1, 
               1, 
               bitsPerComponent, 
               bytesPerRow, 
               colorSpace, 
               kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); 
    CGColorSpaceRelease(colorSpace); 
    CGContextSetBlendMode(context, kCGBlendModeCopy); 

    // Draw the pixel we are interested in onto the bitmap context 
    CGContextTranslateCTM(context, -pointX, -pointY); 
    CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage); 
    CGContextRelease(context); 

    // Convert color values [0..255] to floats [0.0..1.0] 
    CGFloat red = (CGFloat)pixelData[0]/255.0f; 
    CGFloat green = (CGFloat)pixelData[1]/255.0f; 
    CGFloat blue = (CGFloat)pixelData[2]/255.0f; 
    CGFloat alpha = (CGFloat)pixelData[3]/255.0f; 

    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; 
} 

任何想法?

我必須提到,我的UIImageView有一個clearBackground,它的ontop是一個黑色的畫布。這可能是問題嗎?

+0

我不知道你在這裏要求什麼類型的幫助。你可以更具體地瞭解這是一個問題嗎? –

+0

是的,我需要比較顏色值與UIColor colornameColor來查看我是否匹配正確的像素。 – digit

沙发
0
1

你的功能沒有問題。這是浮點數學的結果。整數255(無符號字節的最大值)中的一半是127/255.0或128/255.0,具體取決於您如何舍入。這兩者都不是0.5。他們分別是0.498039215686275和0.501960784313725。

編輯:我想我應該補充一點,在CGImage中的顏色存儲爲字節,而不是浮動。所以當你用UIColor中的float創建橙色時,它會被截斷爲R:255,G:128,B:0 A:255。當你讀回來作爲浮點數得到1.0 0.501961乙:0.0答:1.0

+0

因爲很多主要和次要的顏色是由兩個因子構建的,所以使用256.0作爲常量分母會更好嗎? –

+0

否; 255是UInt8的正確最大值。如果你真的關心四捨五入,那麼只需以字節爲單位指定所有顏色,並且不會有任何轉換或精度損失。如果您在顯示屏P3上使用寬色,則只需要浮點數。 –

+0

Josh Homann:你能否更新我的函數來處理字節,這樣我就可以看到了? – digit

0
votes
answers
32 views
+10

加載時出錯:找不到指定主機名的服務器

1

所以我一直在爲大約最近一個月左右的時間在我的博覽會設置上發生一個奇怪的問題。我通過Expo創建了我的項目,當我在終端中使用exp start或者嘗試通過Expo XDE加載項目時,它會在依賴關係圖加載後掛起。我認爲這是一個NPM問題(並且努力修復我的編碼環境數週),但是隨後我使用create-react-native-app創建了一個新項目,並注意到似乎存在與模擬器連接的問題。當我實例與創造 - 反應 - 本機應用程序(而非世博會)的新項目中,我得到這個錯誤exp://localhost:19000 — Error while loading: a server with specified hostname could not be found. (code - 1003)這裏是什麼樣子照片:加載時出錯:找不到指定主機名的服務器

exp error while loading

然後我試圖把地址該項目從終端到模擬器:

pasting link from terminal

而且它的實際工作!該應用加載!

app loads successfully

這讓我覺得有與模擬器的連接有問題。也許它是指向錯誤的端口?使用這種方法,我可以運行由create-react-native-app生成的應用程序,但不是我通過expo創建的原始投影,因爲它仍然被掛起並且不會啓動模擬器。通過Expo創建的項目沒有iOS文件,這就是您如何啓動create-react-native-app項目(紗線運行ios)的方式。

有關如何解決此問題的任何想法?

沙发
0
1

嘗試卸載這兩個Xcode &世博會。

似乎模擬器的端口在某種不同的引用。

在重新安裝Xcode & Expo之後,確保所有x代碼,模擬器和expo本地版本都是最新的,然後再啓動模擬器。